登陆功能实现
- 1、登录功能初步实现
- 2、登录失败提示
- 3、url映射
1、登录功能初步实现 登录功能也就是当我们点击登录按钮的时候,会进入一个页面,这里进入
dashboard.html
页面因此我们首先在
index.html
中的表单编写一个提交地址/user/login
,并给名称和密码输入框添加name
属性为了后面的传参
然后需要编写相对应的controller·,我们在
com.kuang.controller
包下创建LoginController.java
类,用来处理登录请求package com.kuang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.thymeleaf.util.StringUtils;
@Controller
public class LoginController {
@RequestMapping("/user/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password,
Model model){//具体的业务,先简单设置为用户名不为空且密码为123456就可以登录成功
if(!StringUtils.isEmpty(username) && "123456".equals(password)){
return "dashboard";
//跳转到dashboard页面
}else{
//告诉用户登录失败了
model.addAttribute("msg","用户名或者密码错误");
return "index";
//跳转到首页
}
}
}
启动主程序,访问
http://localhost:8080/kuang/
,输入任意用户名和密码123456,即可实现登录功能,并跳转到dashboard.html
页面文章图片
登录成功跳转到
dashboard.html
页面时,浏览器url为http://localhost:8080/kuang/user/login?username=admin&password=123456
文章图片
2、登录失败提示 现在如果我们输入的用户名和密码不符合要求,只会重新跳转到
index.html
,但我们并没有在index.html
中显示提示的消息文章图片
修改
index.html
,在请登录下面加一个消息提示的标签,注意Thymeleaf模板引擎的语法......
Please sign in
......
这时,如果我们输入的用户名和密码不符合要求的话,会重新跳转
index.html
,并给出错误提示文章图片
3、url映射 到此我们的登录功能实现完毕,但是有一个很大的问题,浏览器的url暴露了用户的用户名和密码。这在实际开发中是重大的漏洞,泄露了用户信息。
文章图片
因此我们需要编写一个映射,我们在
config
包下的自定义的配置类MyMvcConfig.java
中,设置跳转到dashboard.html
时映射到main.html
@Override
public void addViewControllers(ViewControllerRegistry registry) {
......
registry.addViewController("/main.html").setViewName("dashboard");
}
然后我们在登录成功时,重定向到
main.html
即可,也就是修改LoginController.java
,在登录成功时进行重定向if(!StringUtils.isEmpty(username) && "123456".equals(password)){
return "redirect:/main.html";
}
现在,我们成功登录之后,地址栏显示的url就会是
http://localhost:8080/kuang/main.html
,而不会显示出我们提交的请求了文章图片
但是还有一个问题!【Spring|Spring Boot开发简单网页(员工管理系统)(五)(登录功能实现)】如果我们现在直接访问
http://localhost:8080/kuang/main.html
,也是可以进入登录成功后的后台页面,这该如何解决呢?答案是设置登录拦截器推荐阅读
- java|java spring上传图片_java基于spring boot本地上传图片示例解析
- 自动驾驶|自动驾驶 java_深入浅出自动驾驶(一)-图像识别
- 百度|《2022版大数据必备Linux命令》,高清完整版下载!
- Java毕业设计项目实战篇|Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)
- java|15个Java线程并发面试题和答案(java高级)
- java历史
- Spring|spring-cloud-stream 消息分区与消息分组【只有链接,后续补】
- Android|Android Studio安装教程(保姆级超级详细)
- Java毕业设计项目实战篇|Java项目:优咪商城系统(java+SpringBoot+html+bootstrap+layui+maven+mysql)