专注Java教育14年 全国咨询/投诉热线:444-1124-454
星辉LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Servlet验证码的代码示例

Servlet验证码的代码示例

更新时间:2022-01-04 10:39:03 来源:星辉 浏览758次

//login.jsp<br><%@ 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>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body> 
${msg }
<form action="/day11/login" method="post">
        <table border="1" width="70%">
            <tr>
                <td>Enter name</td>
                <td>
                    <input type="text" name="username" />
                </td>
            </tr>
            <tr>
                 <td>Enter password</td>
                <td>
                    <input type="password" name="password" />
                </td>
            </tr>
            <tr>
                 <td>Verification code</td>
                <td>
                    <input type="text" name="code" />
                    <img id="imgId" src="/day11/checkcode">
                     <a href="#" onclick="run()">Can’t see clearly, change one</a>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                     <input type="submit" value="log in"/>
                </td>
            </tr>
        </table>
    </form>
</body>
    <script type="text/javascript">
         // Can't see clearly, change one, timestamp
        function run(){
             // Get pictures
            var image = document.getElementById("imgId");
            image.src = "/day11/checkcode?"+new Date().getTime();
        }     
    </script>
</html>
package CheckCode;
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 check extends HttpServlet { 
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        final int width=140;
        final int height=30;
        BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
        Graphics2D g=(Graphics2D)image.getGraphics();         
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, width, height);
        g.setColor(Color.BLUE);
        g.drawRect(0, 0, width-1, height-1);         
        String words="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
        Random random=new Random(); 
        g.setColor(Color.WHITE);
         g.setFont(new Font("kaishu",Font.PLAIN,18));         
        int x=20;
        int y=20;
        StringBuffer sb=new StringBuffer();
        for(int i=0;i<5;i++){
            int jiaodu=random.nextInt(60)-30;
            double hudu=jiaodu*Math.PI/180;
            g.rotate(hudu,x,y);
            int index=random.nextInt(words.length());
            char ch=words.charAt(index);
             
            sb.append(ch);
            g.drawString(" "+ch, x, y);
            g.rotate(-hudu,x,y);
            x+=18;
        }
        request.getSession().setAttribute("code", sb.toString());
        g.setColor(Color.BLUE);
        int x1;
        int x2;
        int y1;
        int y2;
        for(int i=0;i<4;i++){
            x1=random.nextInt(width);
            y1=random.nextInt(height);
            x2=random.nextInt(width);
            y2=random.nextInt(height);
            g.drawLine(x1, y1, x2, y2);
        }         
        ImageIO.write(image, "jpg", response.getOutputStream());
    } 
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    } 
}
package CheckCode; 
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 loginServlet extends HttpServlet { 
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String code1=(String)request.getSession().getAttribute("code");
        System.out.println(code1);
        String code2=request.getParameter("code");
        if(code2!=null&&code1.equalsIgnoreCase(code2)){
            response.setContentType("text/html;charset=UTF-8");
             response.getWriter().write("Success");
        }else{
             request.setAttribute("msg","Verification code error");
            request.getRequestDispatcher("/jsp/login.jsp").forward(request,response);
        }
    } 
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException { 
        doGet(request, response); 
    } 
}

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>