jsp页面动态生成验证码
来源:互联网 发布:搜狗输入法mac旧版本 编辑:程序博客网 时间:2024/06/05 07:15
在web项目中登录验证一般采用验证码验证,根据个人需求将生成验证码代码放到不同的的地方,可以放到前段控制器中通过请求方式生成验证码,也可已将代码放到一个JSP页面通过应用JSP页面生成验证码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@page import="java.awt.image.BufferedImage"%><%@page import="java.awt.Graphics2D"%><%@page import="java.awt.Color"%><%@page import="java.awt.Font"%><%@page import="javax.imageio.ImageIO"%><%@page import="java.util.Random"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><%int width = 60;int height = 20;// 创建具有可访问图像数据缓冲区的ImageBufferedImage buffImg = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);Graphics2D g = buffImg.createGraphics();// 创建一个随机数生成器Random random = new Random();g.setColor(Color.WHITE);g.fillRect(0, 0, width, height);// 创建字体,字体的大小应该根据图片的高度来定Font font = new Font("Times New Roman", Font.PLAIN, 18);// 设置字体g.setFont(font);// 画边框g.setColor(Color.BLACK);g.drawRect(0, 0, width - 1, height - 1);// 随机产生160条干扰线g.setColor(Color.LIGHT_GRAY);for (int i = 0; i < 160; i++) {int x = random.nextInt(width);int y = random.nextInt(height);int x1 = random.nextInt(12);int y1 = random.nextInt(12);g.drawLine(x, y, x + x1, y + y1);}// randomCode 用于保存随机产生的验证码StringBuffer randomCode = new StringBuffer();int red = 0, green = 0, blue = 0;// 随机产生4位数字的验证码for (int i = 0; i < 4; i++) {// 得到随机产生的验证码数字String strRand = String.valueOf(random.nextInt(10));// 产生随机的颜色分量来构造颜色值red = random.nextInt(110);green = random.nextInt(50);blue = random.nextInt(50);// 用随机产生的颜色将验证码绘制到图像中g.setColor(new Color(red, green, blue));g.drawString(strRand, 13 * i + 6, 16);randomCode.append(strRand);}// 将四位数字的验证码保存到session中//HttpSession session = request.getSession();session.setAttribute("randomCode", randomCode.toString());// 禁止图像缓存response.setHeader("Pragma", "no-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);response.setContentType("image/jpeg");// 将图像输出到servlet输出流中ServletOutputStream sos = response.getOutputStream();ImageIO.write(buffImg, "jpeg", sos);sos.close();//sos = null;out.clear();out = pageContext.pushBody();%></body></html>
通过应用上面代码就可以生成一个验证码 在后台通过获得session就可以获得产生的验证码 通过比对来验证登录
在登录界面可以这样应用 简单展示一下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head lang="en"><meta charset="UTF-8"><title>登录界面</title><script src="./js/jquery-3.2.1.min.js"></script><script type="text/javascript">$(function(){ $("#loginform_submit").click(function(){ if(checkInput()){ $("#form1").submit(); }else{ return false; } } );});function checkInput(){var flag = true; //判断用户名 if($("input[name=username]").val()==null || $("input[name=username]").val()==""){ alert("用户名不能等于空"); $("input[name=username]").focus(); flag =false; return ; } //判断密码 if($("input[name=password]").val()==null || $("input[name=password]").val()==""){ alert("密码不能等于空"); $("input[name=password]").focus(); flag =false; return ; } //判断验证码 if($("#validationCode").val()==null || $("#validationCode").val()==""){ alert("验证码不能为空"); $("#validationCode").focus(); flag =false; return ; } return flag;}</script></head><body> <div id="loginpanelwrap" align="center"> <div> <div>登录</div> </div> <form id="form1" action="LoginServlet" method="post"> <tr> <td> <label>用户名:</label> <input id="username" type="text" name="username" /><br> </td> </tr> <label>密码:</label> <input type="password" name="password" id=""/><br> <label>验证码:</label> <input type="text" name="validationCode" id="validationCode"/> <img id="validationCode_img" src="validate.jsp"><br> <tr> <span></span> <input type="submit" id="loginform_submit" value="登录" /> </tr> </form> </div></body></html>
根据个人喜好可以设置点击更换
阅读全文
0 0
- jsp页面动态生成验证码
- jsp页面动态生成验证码
- 在JSP页面中动态生成图片(验证码…
- JSP页面验证码生成
- Jsp生成页面验证码
- JSP页面生成验证码
- JSP页面生成验证码
- jsp生成动态验证码
- JSP动态生成验证码
- JSP页面的验证码生成,验证
- JSP动态生成页面
- Jsp页面验证码的生成方法
- jsp生成页面验证码的方法
- Jsp+Ajax生成页面验证码
- Jsp生成页面验证码的方法
- Jsp页面生成随机验证码图片
- Servlet生成JSP页面验证码
- 生成简单验证码的JSP页面
- 第八周 【项目2-顺序串算法】
- java练习4
- 求成绩的最高分
- 【java】SSM框架搭建(二)——项目整合
- PID控制电机转速
- jsp页面动态生成验证码
- javascript滚轮事件控制一次滚动一页
- C++ STL 中 map 容器的说明和使用技巧
- 数据库事务的四大特性以及事务的隔离级别
- 有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
- maven入门之自动建立目录骨架--archetype插件
- Java异常
- 用户图形界面的创建
- BZOJ 1025 [SCOI2009]游戏