servlet写的验证码.
解决方案 »
- 在ibatis中使用oracle的sql语句,但是无法解析 case when ....end 语句
- Hibernate左连接left join fetch报错
- ibatis 多值逻辑判断的写法?
- 请问如何将一个INPUTSTREAM对象保存到ORACLE数据库中的CLOB或者BLOB字段
- 环境构建紧急求救:安装OracleAS的时候,如何将OracleAS和OracleAS Metadata Repository DB 分别安装在不同的服务器上?
- 请不要将与技术无关的问题发布到论坛中,让我们这仅有的技术交流地带成为程序员的乐土!
- struts2 标签使用问题
- 关于spring的问题 !! 急 ,解决就给分
- JBuilder9+was5开发EJB实例部署出错,望指教一二!!
- 能否推荐几本开发手机短信和互联网通讯的书?
- struts2问题~这是什么问题~
- 求解 Java xfire 代码的大体意思
Java code
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>