用JSP实现图形验证码
来源:互联网 发布:旧网络机顶盒改造diy 编辑:程序博客网 时间:2024/05/16 03:30
import java.util.*;
import com.sun.image.codec.jpeg.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.awt.*;
import java.awt.image.*;
public class ValidateCode extends HttpServlet {
private Font mFont=new Font("宋体", Font.PLAIN,12);//设置字体
//处理post
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
doGet(request,response);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
//取得一个1000-9999的随机数
String s="";
int intCount=0;
intCount=(new Random()).nextInt(9999);//
if(intCount<1000)intCount =1000;
s=intCount "";
//保存入session,用于与用户的输入进行比较.
//注意比较完之后清除session.
HttpSession session=request.getSession (true);
session.setAttribute("validateCode",s);
response.setContentType("image/gif");
ServletOutputStream out=response.getOutputStream();
BufferedImage image=new BufferedImage(35,14,BufferedImage.TYPE_INT_RGB);
Graphics gra=image.getGraphics();
//设置背景色
gra.setColor(Color.yellow);
gra.fillRect(1,1,33,12);
//设置字体色
gra.setColor(Color.black);
gra.setFont(mFont);
//输出数字
char c;
for(int i=0;i<4;i ) {
c=s.charAt(i);
gra.drawString(c "",i*7 4,11); //7为宽度,11为上下高度位置
}
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
}
}
java的图片处理包需要图形环境,而linux上没有启动图形环境,找不到图形环境的server(X11 window server using ':0.0' )所以会报这个错。而通过java -Djava.awt.headless=true 这个参数的指定就可以避免java 2d去找图形环境。
要么这样试试,应该也可以。在servlet里一开始写一句:
System.setProperty("java.awt.headless","true");
web服务器的java虚拟机必须加以个参数java.awt.headless=true
以tomcat为例
可以在/etc/profile或启动web服务的用户的.bash_profile中的CATALINA_OPTS变量中加入:
CATALINA_OPTS="... -Djava.awt.headless=true"
其他的也可以看看启动脚本。只要加上这个参数就没问题了
- 用JSP实现图形验证码
- jsp实现图形验证码
- JSP图形验证码
- jsp图形验证码
- JSP图形验证码-汉字
- JSP图形验证码-汉字
- JSP了图形验证码--汉字
- 无错版JSP生成图形验证码
- jsp中生成图形验证码
- jsp 图形验证码 IllegalStateException 异常
- 如何编写jsp图形验证码
- 图形验证码(JSP+Servlet)
- 图形验证码实现方法
- Servlet实现图形验证码
- java图形验证码实现
- 图形验证码的实现
- JSP实现验证码
- jsp验证码实现
- VS2005中滚动条问题
- TNS-12537 error due to inappropriate OS parameter on AIX
- 不可思议:99%的人不了解的真实中国历史
- 新PC时代的思考 (1)
- 所谓的科研
- 用JSP实现图形验证码
- 高清晰电影的文件后缀解析
- 摘的关于SAP怎么学
- 做项目期间的读书学习体会
- 进程间通信1. 基本原理
- 用Java缓存机制创建更快的Web应用----基本用法
- 范刚:DWR帮助说明-服务器端程序的编写
- 新PC时代的思考 (2)
- 在RedHat AS下安装配置SVN管理工具