servlet简单的验证码登录验证
来源:互联网 发布:单片机电子密码锁编程 编辑:程序博客网 时间:2024/05/09 05:16
package com.bjsxt.check;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.io.PrintWriter;import java.util.Random;import javax.imageio.ImageIO;<pre name="code" class="java">package com.bjsxt.check;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Check extends HttpServlet {public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String checkCode = request.getParameter("checkCode");String name = request.getParameter("uname");String pwd = request.getParameter("pwd");String checkCode1 = (String) request.getSession().getAttribute("checkCode");//验证生成的验证码和用户输入的验证码是否一致,一致则登陆成功,否则失败if(checkCode!=null&&checkCode.equals(checkCode1)){request.getRequestDispatcher("/index.jsp").forward(request, response);}else{request.getRequestDispatcher("/checkcode.jsp").forward(request, response);}}}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'checkcode.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> <script type="text/javascript"> $(function(){ $("#check").click(function(){ $("#check").attr("src",null); $("#check").attr("src","/checkcode_03/checkCode?"+Math.random()); }); $("#change").click(function(){ $("#check").attr("src",null); $("#check").attr("src","/checkcode_03/checkCode?"+Math.random()); return false; }); }); </script> <body> <form action="check" method="post"> <table> <tr><th>用户名</th><td><input type="text" value="" name="uname"/></td> </tr> <tr><th>密码</th><td><input type="password" value="" name="pwd"/></td> </tr> <tr><th>验证码</th><td><input type="text" value="" name="checkCode"/></td> </tr> <tr><th colspan="2"><img alt="验证码" src="/checkcode_03/checkCode" id="check"><a href="#" id="change" >看不清,换一张</a></th> </tr> <tr><th colspan="2"><input type="submit" value="提交"/> <input type="reset" value="重置"/></th> </tr> </table> </form> </body></html>
import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.Random;import javax.imageio.ImageIO;import javax.imageio.stream.ImageOutputStreamImpl;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class CheckCode extends HttpServlet {private static final long serialVersionUID = 1L;private static final int WIDTH = 100;private static final int HEIGHT = 30;private char[] checkCode = new char[4];private Random random = new Random();// 随机产生二维码字符四个public char[] getCheckCode() {String str = "abcdefghijklmnopqrstuvwxyz0123456789";for (int i = 0; i < 4; i++) {int index = random.nextInt(str.length());checkCode[i] = str.charAt(index);}return checkCode;}// 设置图片背景public void setBackGround(Graphics g) {// 设置背景色g.setColor(Color.GRAY);// 填充背景色g.fillRect(0, 0, WIDTH, HEIGHT);for (int i = 0; i < 120; i++) {// 设置干扰点颜色g.setColor(new Color(random.nextInt(255), random.nextInt(255),random.nextInt(255)));// 设置干扰点g.drawOval(random.nextInt(WIDTH), random.nextInt(HEIGHT), 1, 0);}}// 将验证码写在图片上public void DrawFont(Graphics g, char[] checkCode) {for (int i = 0; i < checkCode.length; i++) {g.setColor(new Color(random.nextInt(255), random.nextInt(255),random.nextInt(255)));g.setFont(new Font(null, Font.ITALIC | Font.BOLD, 30));g.drawString("" + checkCode[i], (int) (Math.random() + 25 * i),(int) (Math.random() * 5 + 27));}}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("image/jpeg");HttpSession session = request.getSession();BufferedImage image = new BufferedImage(WIDTH, HEIGHT,BufferedImage.TYPE_INT_RGB);Graphics g = image.getGraphics();char[] checkCode = getCheckCode();setBackGround(g);DrawFont(g, checkCode);g.dispose();ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();ImageIO.write(image, "JPEG", arrayOutputStream);byte[] buf = arrayOutputStream.toByteArray();ServletOutputStream sos = response.getOutputStream();sos.write(buf);response.setContentLength(buf.length);// 关闭各种流释放资源arrayOutputStream.close();sos.close();session.setAttribute("checkCode", new String(checkCode));}}
0 0
- servlet简单的验证码登录验证
- Struts+Servlet简单实现登录验证码
- servlet&jsp简单登录验证
- 简单的登录验证
- 简单的登录验证
- 简单的验证登录
- 简单的登录验证
- 基于servlet的登录验证
- servlet初步,简单的登录验证并显示用户名称
- JSP+Servlet + JDBC 实现简单的登录验证模块
- 4 JSP+Servlet + JDBC 实现简单的登录验证模块
- 基于JSP + servlet + javabean的MVC简单验证登录实例
- JSP+Servlet + JDBC 实现简单的登录验证模块
- JSP&Servlet 验证码登录
- Struts Servlet简单实现登录随机验证码
- android+servlet登录验证简单demo
- android+servlet登录验证简单demo
- 【Servlet】实现简单的验证码生成与验证
- 数据海量小文件的存储的问题
- 在win7下面清除samba用户的登录状态
- 使用NSAssert
- HDU1231最长连续子序列(最简单的DP)
- Java读取文件方法
- servlet简单的验证码登录验证
- Comparison method violates its general contract
- SQLite关于转码
- perl sprintf()函数
- STL中的size()方法(13)
- Ubuntu12.04输入法突然消失的解决方法
- 291 - The House Of Santa Claus
- 线段树模板
- 使用Java调用以WSDL形式发布的web service