当前位置:编程学习 > JSP >>

jsp验证码生成程序与调用方法

jsp教程验证码生成程序与调用方法
package com.city.sxzlc.servlet;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
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 AuthenticationCode extends HttpServlet {


    public AuthenticationCode() {
        super();
    }


    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }


    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

         //验证码
        int width=70;
        int height=20;
        Integer[] a = new Integer[4];
        String randStr="";
        Random random = new Random();
        Color c = new Color(34,56,78);
        for(int i=0;i<4;i++)
            a[i] = random.nextInt(10);
        for(Integer ele:a)
            randStr+=ele;
        System.out.println(randStr);
       
       
        try{
        response.setContentType("image/jpeg");
        OutputStream out = response.getOutputStream();
        BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_3BYTE_BGR); //feredImage(int width, int height, int imageType)
        Graphics g = image.getGraphics();
        g.fillRect(1, 1, width, height);
        g.setColor(c);
       
        int i=5;
        i=5+random.nextInt(20);
        for(Integer ele:a) {//一个一个画
            g.drawString(ele.toString(), i+random.nextInt(5), 10+random.nextInt(10));
            i=i+8;
        }
       
        ImageIO.write(image, "jpeg", out);
        }catch(Exception e){e.printStackTrace();}
        request.getSession().setAttribute("authCode", randStr);
    }


    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        this.doGet(request, response);
    }


    public void init() throws ServletException {
   
    }

}


%>

 <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>AuthenticationCode</servlet-name>
    <servlet-class>com.city.sxzlc.servlet.AuthenticationCode</servlet-class>
  </servlet>

          <!-- 验证码     mapping  -->
  <servlet-mapping>
    <servlet-name>AuthenticationCode</servlet-name>
    <url-pattern>/login/AuthenticationCode</url-pattern>
  </servlet-mapping>

调用方法

<tr><td>验证码</td><td><input name="authCode" size=5><img src="../login/AuthenticationCode" alt=验证码 id=authCodeID></td><td></td></tr>

 

补充:Jsp教程,Java基础 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,