session实现带随机验证码的登陆
2016-09-10 10:23
369 查看
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>登陆页面</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> <form action="/Session/servlet/LoginServlet2" method="post"> 用户名:<input type="text" name="username"><br/> 密码:<input type="password" name="password"><br/> 认证码:<input type="text" name="checkcode"><img src="/Session/servlet/ImageServlet"><br/> <input type="submit" value="登陆"> </form> </body> </html>
package login2; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String checkcode = request.getParameter("checkcode"); String s_checkcode = (String) request.getSession().getAttribute("checkcode"); if(checkcode==null || s_checkcode==null || !checkcode.equals(s_checkcode)){ System.out.println("认证码错误!!"); return; } //得到用户名和密码,帮用户完成登陆 } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
package login2; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.Random; import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //输出随机图片 public class ImageServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //6.设置头,控制浏览器不要缓存图片数据 response.setHeader("Expires", "-1"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); //5.通知浏览器以图片方式打开 response.setHeader("Content-type", "image/jpeg"); //1.在内存中创建一副图片 BufferedImage image = new BufferedImage(80,20,BufferedImage.TYPE_INT_RGB); //2.得到图片 Graphics2D g = (Graphics2D) image.getGraphics(); //设置图片背景色 g.setColor(Color.WHITE); g.fillRect(0, 0, 80, 20); //3.向图片上写数据 g.setColor(Color.BLUE); g.setFont(new Font(null,Font.BOLD,20)); String checkcode = makeNum(); request.getSession().setAttribute("checkcode", checkcode); g.drawString(checkcode, 0, 20); //4.将图片写给浏览器 ImageIO.write(image, "jpg", response.getOutputStream()); } private String makeNum() { Random r = new Random(); String num = r.nextInt(9999999) + ""; //0-9999999 123 1234567 StringBuffer sb = new StringBuffer(); for(int i=0;i<7-num.length();i++){ sb.append("0"); } num = sb.toString()+num; return num; } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
相关文章推荐
- 使用Session完成用户登陆 利用Session实现验证码校验
- 实现网页随机登陆验证码功能
- 做登陆页面的随机验证码
- Servlet实现随机验证码
- 随机彩色验证码,实现了点击刷新效果
- 用PHP实现随机验证码功能
- PHP实现登陆验证码
- (转)PHP PEAR中用Text_Password轻松实现随机密码以及图形验证码
- 动手实现随机验证码
- 使用Java程序实现随机验证码功能的实例
- 使用Java程序实现随机验证码功能的实例
- PHP,操作多个用户,多个线程的session,实现用户登陆状态session值的自动更新
- 用jsp实现session登陆时间的验证.相当与一个监听器
- 用Java实现随机验证码功能
- 重写IHttpHandler接口实现产生随机验证码图片
- Java实现随机验证码功能实例
- 用PHP实现登陆验证码(类似条行码状)
- 一个利用Session实现一次性验证码
- 用jsp实现登陆验证码的例子[转]
- 实现session验证的lservlet验证码