zoukankan      html  css  js  c++  java
  • jsp验证码

    1、validimg.jsp

     1 <%@ page contentType="image/JPEG"
     2     import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"
     3     pageEncoding="UTF-8"%>
     4 <%!    
     5     //给定范围获得随机颜色
     6     private Color getRandColor(int fc, int bc) {   
     7         Random random = new Random();
     8         if (fc > 255)
     9             fc = 255;
    10         if (bc > 255)
    11             bc = 255;
    12         int r = fc + random.nextInt(bc - fc);
    13         int g = fc + random.nextInt(bc - fc);
    14         int b = fc + random.nextInt(bc - fc);
    15         return new Color(r, g, b);
    16     }
    17 %>
    18 <%
    19     //设置页面不缓存   
    20     response.setHeader("Pragma", "No-cache");
    21     response.setHeader("Cache-Control", "no-cache");
    22     response.setDateHeader("Expires", 0);
    23 
    24     // 在内存中创建图象   
    25     int width = 60, height = 20;
    26     BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    27 
    28     // 获取图形上下文   
    29     Graphics g = image.getGraphics();
    30 
    31     // 设定背景色   
    32     g.setColor(this.getRandColor(200, 250));
    33     g.fillRect(0, 0, width, height);
    34 
    35     //设定字体   
    36     g.setFont(new Font("Times New Roman", Font.PLAIN, 18));
    37 
    38     //生成随机类   
    39     Random random = new Random();
    40 
    41     // 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到   
    42     g.setColor(this.getRandColor(160, 200));
    43     for (int i = 0; i < 100; i++) {
    44         int x = random.nextInt(width);
    45         int y = random.nextInt(height);
    46         int xl = random.nextInt(12);
    47         int yl = random.nextInt(12);
    48         g.drawLine(x, y, x + xl, y + yl);
    49     }
    50 
    51     // 取随机产生的认证码(4位数字)   
    52     String validCode = "";
    53     for (int i = 0; i < 4; i++) {
    54         String rand = String.valueOf(random.nextInt(10));
    55         validCode += rand;
    56         // 将认证码显示到图象中   
    57         g.setColor(new Color(20 + random.nextInt(110), 20 + random
    58                 .nextInt(110), 20 + random.nextInt(110)));//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成   
    59         g.drawString(rand, 13 * i + 6, 16);
    60     }
    61 
    62     // 将认证码存入SESSION   
    63     session.setAttribute("validCode", validCode);
    64 
    65     // 图象生效   
    66     g.dispose();
    67 
    68     // 输出图象到页面   
    69     ImageIO.write(image, "JPEG", response.getOutputStream());
    70 %>
    validimg.jsp

    2、login.jsp

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     3 <html>
     4   <head>
     5     <title>登录页面</title>
     6     
     7   </head>
     8   
     9   <body>
    10     <h1>登录页面</h1>
    11     <form action="logindo.jsp" method="post">
    12     <table>
    13         <tr>
    14             <td><label for="loginName">登录姓名:</label></td>
    15             <td><input type="text" name="loginName" id="loginName"/></td>
    16         </tr>
    17         <tr>
    18             <td><label for="loginPwd">登录密码:</label></td>
    19             <td><input type="password" name="loginPwd" id="loginPwd"/></td>
    20         </tr>
    21         <tr>
    22             <td><label for="validCode">验证码:</label></td>
    23             <td><input type="text" maxlength="4" style="60px" name="validCode" id="validCode"/><img src="validimg.jsp" alt="验证码"/></td>
    24         </tr>
    25         <tr>
    26             <td colspan="2" align="center">
    27                 <input type="submit" value="登录"/>
    28                 <input type="reset" value="重填"/>
    29             </td>
    30         </tr>
    31     </table>
    32     </form>
    33   </body>
    34 </html>
    login.jsp

    3、logindo.jsp

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%@page import="entity.UserInfo"%>
     3 <%@page import="dao.UserInfoDao"%>
     4 <%
     5     //获取表单内容
     6     String validCode = request.getParameter("validCode");
     7     String sValidCode = (String) session.getAttribute("validCode");
     8     if (validCode.equals(sValidCode)) {
     9         String loginName = request.getParameter("loginName");
    10         String loginPwd = request.getParameter("loginPwd");
    11 
    12         UserInfo userInfo = UserInfoDao.instance().Login(loginName,loginPwd);
    13 
    14         if (userInfo != null) {
    15             if (loginName.equals(userInfo.getLoginName())) {
    16                 session.setAttribute("login",userInfo);
    17                 response.sendRedirect("manager.jsp");
    18             } else {
    19                 out.print("登录失败!");
    20             }
    21         } else {
    22             out.print("登录失败!");
    23         }
    24     } else {
    25         out.print("验证码失败!");
    26     }
    27 %>
    logindo.jsp
  • 相关阅读:
    《DSP using MATLAB》Problem 6.17
    一些老物件
    《DSP using MATLAB》Problem 6.16
    《DSP using MATLAB》Problem 6.15
    《DSP using MATLAB》Problem 6.14
    《DSP using MATLAB》Problem 6.13
    《DSP using MATLAB》Problem 6.12
    《DSP using MATLAB》Problem 6.11
    P1414 又是毕业季II
    Trie树
  • 原文地址:https://www.cnblogs.com/qiyebao/p/3718053.html
Copyright © 2011-2022 走看看