jsp驗證碼產生程式與調用方法

來源:互聯網
上載者:User

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>

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.