SpringMVC框架编写后端验证码

SpringMVC框架编写验证码

验证码的作用:可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。这个问题可以由计算机生成并评判。
验证码可以使用纯数字、纯文字(例如很多4字成语的验证码)、纯英文字母(本章案例使用0-9,a-z的数字+字母验证码)

1.首先再Controller中写接受验证码请求的方法

/*验证码*/
@RequestMapping(path = "/validation")
public void validation(HttpServletRequest request, HttpServletResponse response) throws IOException {

//		设置浏览器无缓存
        response.setHeader("pragam", "No-cache");
        response.setHeader("Cache", "No-cache");
        response.setDateHeader("Expires", 0);

//		设置响应格式为图片(以前的html/text是文本)
        response.setContentType("image/gif");

//		设置宽高
        int width = 100;
        int height = 50;

//		创建缓冲区(画板)
//		BufferedImage.TYPE_INT_RGB使用图片颜色的方案
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

//		(画笔)
        Graphics g = image.getGraphics();

//		字体(字体,加粗,大小)
        Font font = new Font("楷体", Font.BOLD, 30);

        g.setFont(font);
        //设置验证码边框
        g.setColor(Color.orange);
        g.drawRect(5, 10, width, height);
        //设置验证码内部背景颜色
        g.setColor(new Color(255, 247, 238));
        g.fillRect(1, 1, width - 2, height - 2);
		
//		验证码的内容(0-9,a-z)
        String content = "0123456789abcdefghijklmnopqrstuvwxyz";
        String info = "";

//		四位验证码循环四次
        for (int x = 0; x < 4; x++) {
//			随机取字符串
            int index = new Random().nextInt(content.length() - 1);
            char ch = content.charAt(index);
//			随机数类
            Random random = new Random();
//         	每个字符随机颜色(颜色可以固定,也可以使用Random类随机,Color的三个参数位RGB颜色值)这里演示为固定
            g.setColor(new Color(255, 113, 0));
//			字符位置(随机)
            g.drawString(ch + "", 25 * x + 1, 20 + random.nextInt(30));
//			干扰线位置(随机)
            g.drawLine(random.nextInt(100), random.nextInt(50), random.nextInt(100), random.nextInt(50));
//			生成的验证码赋值给info
            info += ch;
        }

//		将随机生成的验证码存入Session(使用时获取Session的值,进行判断输入的是否与随机生成的相同)
        HttpSession session = request.getSession();
        session.setAttribute("validation", info);
        
//      通过流的方式进行响应
        g.dispose();
        OutputStream out = response.getOutputStream();
        ImageIO.write(image, "gif", out);

//		释放资源
        out.flush();
        out.close();
    }

2.编写前台页面代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

	<%--style="cursor:pointer;"作用:鼠标移入时会将鼠标改小手形状。title="看不清?点击换一换"作用:鼠标悬停显示文字--%>
	验证码:<img src="validation" id="img" title="看不清?点击换一换" onclick="reload()" style="cursor:pointer;"/>
		
</body>
		<script type="text/javascript">
		//  每次点击刷新都不是相同请求
		    function reload(){
		        document.getElementById("img").src = document.getElementById("img").src+"?a="+new Date().getTime();
		    }
		</script>
</html>

3.打开浏览器访问就可以啦

点击就切换验证码
在这里插入图片描述

痛苦犹如一艘船,欲望是指南针。
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC是一种基于MVC模式的Web应用程序框架,它使用Java的注解和配置文件来管理请求和响应数据。下面是使用Spring MVC框架编写Web应用程序的一般步骤: 1. 配置Spring MVC 首先,需要在项目中添加Spring MVC的依赖库,然后在web.xml文件中配置DispatcherServlet,以便将请求转发到Spring MVC控制器。 2. 创建控制器 创建控制器类并使用@Controller注解标记它。在控制器中,可以定义多个处理方法来处理不同的请求,每个处理方法使用@RequestMapping注解来映射请求路径。 3. 定义视图 使用视图解析器来解析请求并返回相应的视图。可以使用JSP、Thymeleaf、Freemarker等模板引擎来定义视图。 4. 处理数据 使用@ModelAttribute注解将请求参数绑定到控制器方法的参数中。可以使用@RequestParam注解来绑定URL参数,使用@RequestBody注解来绑定请求体中的JSON或XML数据。 5. 配置拦截器 使用拦截器可以对请求进行处理和过滤,可以使用@Interceptor注解来定义拦截器。 6. 配置异常处理 使用@ExceptionHandler注解来处理控制器方法中抛出的异常,并返回相应的错误页面或JSON数据。 7. 配置文件上传 使用MultipartResolver来处理文件上传,可以使用Apache Commons FileUpload或Spring自带的MultipartResolver。 8. 配置RESTful服务 使用@RestController注解来定义RESTful服务,可以使用@PathVariable注解来获取URL参数,使用@RequestBody注解来获取请求体中的JSON或XML数据。 以上是Spring MVC框架编写Web应用程序的一般步骤,具体的实现细节还需要根据具体的需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值