SpringBoot下实现登录检验(用户名、密码、验证码 SSH的demo)

您所在的位置:网站首页 cf下载登陆失败请检查用户名和密码是否正确 SpringBoot下实现登录检验(用户名、密码、验证码 SSH的demo)

SpringBoot下实现登录检验(用户名、密码、验证码 SSH的demo)

2024-07-11 12:30| 来源: 网络整理| 查看: 265

项目目标:

             IDEA中创建一个Maven -》springBoot项目,实现用户登录检验的功能,使用Hibernate对数据进行管理。当用户名、密码和验证码均正确的时候,显示登录成功的信息。

目录

1、项目环境搭建

2、前台登录页面

3、工具类的实现

4、MVC模块的代码实现

5、实现检验

1、项目环境搭建

新建一个springboot项目,选择JPA(hibernate)数据库,在pom文件的依赖如下:

UTF-8 1.8 1.8 org.springframework.boot spring-boot-starter-parent 2.1.3.RELEASE org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-web junit junit 4.11 test org.slf4j slf4j-api 1.7.25 javax.servlet javax.servlet-api 3.1.0 org.springframework.boot spring-boot 2.1.3.RELEASE mysql mysql-connector-java runtime org.springframework.boot spring-boot-starter-data-jpa com.alibaba fastjson 1.2.47 org.springframework.boot spring-boot-starter-thymeleaf org.mybatis mybatis-spring 1.3.0

application.properties的配置信息如下:

#DB 添加数据库的连接信息 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql:///db_hibernate?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root #spring.jpa.properties.hibernate.hbm2ddl.auto=update #JPA配置信息 spring.jpa.database=MySQL spring.jpa.show-sql=true spring.jpa.generate-ddl=true spring.jpa.hibernate.ddl-auto=update spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy #配置themeleaf转发页面的设置 spring.thymeleaf.prefix=classpath:/templates/ 2、前台登录页面 登陆 用户名: 密 ;;;码: 验证码: 更换验证码 function getVerify() { // $("#imgCode").on("click", function() { $("#imgVerify").attr("src", 'login/getVerify?' + Math.random());//jquery方式 // }); }

注意:在引入静态资源包的时候,引入资源的代码块应该放在所有的js代码块前面。如以下代码,放在了js前面。

3、工具类的实现

验证码的工具类,直接使用,不用修改:

package com.songo.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.awt.*; import java.awt.image.BufferedImage; import java.util.Random; public class RandomValidateCodeUtil { public static final String RANDOMCODEKEY= "RANDOMVALIDATECODEKEY";//放到session中的key private String randString = "0123456789";//随机产生只有数字的字符串 private String //private String randString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";//随机产生只有字母的字符串 //private String randString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//随机产生数字与字母组合的字符串 private int width = 95;// 图片宽 private int height = 25;// 图片高 private int lineSize = 40;// 干扰线数量 private int stringNum = 4;// 随机产生字符数量 private static final Logger logger = LoggerFactory.getLogger(RandomValidateCodeUtil.class); private Random random = new Random(); /** * 获得字体 */ private Font getFont() { return new Font("Fixedsys", Font.CENTER_BASELINE, 18); } /** * 获得颜色 */ private Color getRandColor(int fc, int bc) { if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc - 16); int g = fc + random.nextInt(bc - fc - 14); int b = fc + random.nextInt(bc - fc - 18); return new Color(r, g, b); } /** * 生成随机图片 */ public void getRandcode(HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); // BufferedImage类是具有缓冲区的Image类,Image类是用于描述图像信息的类 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); Graphics g = image.getGraphics();// 产生Image对象的Graphics对象,改对象可以在图像上进行各种绘制操作 g.fillRect(0, 0, width, height);//图片大小 g.setFont(new Font("Times New Roman", Font.ROMAN_BASELINE, 18));//字体大小 g.setColor(getRandColor(110, 133));//字体颜色 // 绘制干扰线 for (int i = 0; i 0; } }

3)controller层获取数据并检验

在controller层中获取用户输入的信息,然后进行检验;检验成功后,转发success.html页面,并显示登陆成功的信息;

实现页面之间的转发以下提供两种方式:

first method:返回类型为String,即直接返回需要转发到的页面的名称即可;使用themleaf来实现,需要在properties文件中,配置

静态资源的转发路径:类路径下,templates文件下的文件

second method:使用spring mvc中ModelAndView类作为返回类型,直接返回一个ModelAndView的对象(可根据构造函数来进行选择实现的方式,可以直接传递一个字符串参数,即想要转发到的页面名称;或者创建一个ModelAndView对象,设置其属性名称,然后返回该对象。)

@Controller public class LoginUserController { @Autowired private UserService userService; @RequestMapping("/loginVerify") public ModelAndView loginVerify(HttpServletRequest request, HttpSession session, Model model){ String username = request.getParameter("user-name-label"); String pwd = request.getParameter("password-label"); String inputStr = request.getParameter("verify_input"); System.out.println(username+pwd); User user = new User(username,pwd); model.addAttribute("user",user); boolean verify = userService.verifyLoginUser(user.getUsername(),user.getPwd()); boolean verifyCode = Picverifyaction.checkVerify(inputStr,session); if(verify && verifyCode){ return new ModelAndView("success.html"); // return "success"; }else{ return new ModelAndView("fail.html"); // return "fail"; } } @GetMapping("/test") public String test(){ return "success"; } }  

在success.html中,使用themeleaf来显示用户的信息

springboot中,成功实现页面之间的转发,用于测试 登陆成功

 

 

5、实现检验

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3