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>