SpringBoot + thymeleaf 实现简单的登陆验证
来源:互联网 发布:apache服务器安装 编辑:程序博客网 时间:2024/05/18 01:05
本文上一篇的内容的基础上,加入thymeleaf 模板,实现一个简单的登陆和页面错误提示的功能,借此了解SpringBoot web项目,同时为大家分享一些编码小技巧,用于简化代码。
我们回到第一篇的内容,看一下项目的目录结构,SpringBoot 生成项目时,如果引入了web组件,在resources文件夹下面会生成两个文件夹static 和 templates 。static文件夹默认存放css、js等静态资源,templates文件夹用来存放html等模板页面(有兴趣的同学可以通过配置文件或配置类修改存放路径,在demo中,我们就 使用Spring推荐的默认路径 )。
一、在templates 下,编写一个登陆页面 login.html
<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title>登录</title> <link rel="stylesheet" type="text/css" href="/css/common.css" /></head><body> <form th:action="@{/login}" method="post"> <div> <!--/*@thymesVar id="error" type=""*/--> <span id="basic-addon0"> </span> <span style="font-size: 12px;color: red" th:text="${error}" aria-describedby="basic-addon0"></span> <br /> </div> <div> <span id="basic-addon1">@</span> <input id="user_name" name="userName" type="text" placeholder="用户名" aria-describedby="basic-addon1" /> </div> <br /> <div> <span id="basic-addon2">@</span> <input id="password" name="password" type="password" placeholder="密码" aria-describedby="basic-addon2" /> </div> <br /> <button type="submit" style="width:190px;">登 录</button> </form></body></html>
我们只要在标签中加入 xmlns:th=”http://www.thymeleaf.org” , 启用thymeleaf模板。
关于thymeleaf 的语法我们后面另起篇幅进行分享。
二、编写LoginController控制器
package cn.pw.pf.web.controller;import cn.pw.pf.web.requestParam.UserVo;import org.springframework.validation.BindingResult;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.servlet.ModelAndView;import javax.validation.Valid;/** * 页面登陆控制器 * @Description: * @Author:libin * @Date: Created in 15:28 2017/11/13 */@RestController@RequestMapping("/")public class LoginController { @GetMapping("/login") public ModelAndView login(ModelAndView modelAndView){ modelAndView.setViewName("login"); return modelAndView; } @PostMapping("/login") public ModelAndView login(ModelAndView modelAndView, @Valid UserVo userVo, BindingResult bindingResult){ if(bindingResult.hasErrors()){ modelAndView.addObject("error",bindingResult.getFieldError().getDefaultMessage()); modelAndView.setViewName("login"); return modelAndView; } String userName = userVo.getUserName(); String password = userVo.getPassword(); if(!"admin".equals(userName)){ modelAndView.addObject("error","无此用户!"); modelAndView.setViewName("login"); return modelAndView; } if(!"123456".equals(password)){ modelAndView.addObject("error","密码错误!"); modelAndView.setViewName("login"); return modelAndView; } modelAndView.addObject("userName",userName); modelAndView.setViewName("index"); return modelAndView; }}
login 的get请求用于页面跳转,post请求用于处理登陆验证。
这里我使用了@Valid 和 BindingResult 实现页面参数验证。
三、编写 UserVo类,用于bind页面请求参数。同样,我们创建一个新包,requestParam,存放UserVo。
package cn.pw.pf.web.requestParam;import org.hibernate.validator.constraints.NotEmpty;import javax.validation.constraints.Size;/** * 页面请求参数对应实体 * @Description: * @Author:libin * @Date: Created in 15:34 2017/11/13 */public class UserVo { private Long id; @NotEmpty(message="用户名不能为空!") private String userName; private String nickName; @Size(min=6,max=10,message = "密码长度必须6到10位") private String password; private Integer age; private Integer sex; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
OK,代码编写完毕,我们测试一下。
1、启动项目,打开 http://localhost:8680/login
2、在不输入用户名密码的情况下,点击登录
3、输入用户名 admin 不输入密码,点击登录
4、输入完整的用户名密码,用户名:adimn 密码:123456
总结:截止目前,很简单的一个 SpringBoot web项目 ,内容很简单,代码极少,全程没有一个xml。下一篇我们分享SpringBoot web 配置Filter过滤器。
- SpringBoot + thymeleaf 实现简单的登陆验证
- SpringBoot+thymeleaf简单实现登陆注册及记账功能
- SpringBoot使用thymeleaf的简单记录
- springboot thymeleaf简单整合
- 用户登陆与验证的简单实现
- 用户登陆与验证的简单实现
- jsp实现客户登陆的简单验证
- python实现简单的登陆验证
- SpringBoot实现简单的注册与登陆功能
- 异步实现springboot+thymeleaf上传头像的实现
- Hibernate实现简单登陆验证
- SpringBoot+SpringSecurity+thymeleaf 代码实现
- SpringBoot与Thymeleaf实现国际化
- java鬼混笔记:springboot之thymeleaf 1:简单的thymeleaf例子
- extJs+json实现的一个登陆验证的简单例子
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
- Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合。 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 ……
- Oracle的小笔记,模糊处理人名,电话,地址之类字段数据时可以使用的SQL语句
- 前端---div的60秒倒计时
- 朴素贝叶斯-文本分类侮辱性言论
- codeforces 167C Wizards and Numbers(找规律,博弈)
- SpringBoot + thymeleaf 实现简单的登陆验证
- 6.9
- TensorFlow四种损失函数
- No artifacts found that match the file pattern
- 学习
- NASA 的十大编码准则
- JS去除ajax传过来的字符串空格
- maven pom
- Java 对象之间相同属性的赋值