首页 文萃 技术文档 二手市场 培训机构 e书下载 五星图书 考试资源 软件下载 标准下载 最新资讯
图书资源 留言板 联系我们
JSP图形验证码的系统设置|西安信息资源网|E书下载|电子书下载|信息发布


JSP图形验证码的系统设置 转帖

推荐人:WD

  import java.io.*; 
 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(一个很好用的JSP运行平台)为例 

   可以在/etc/profile或启动web服务的用户的.bash_profile中的CATALINA_OPTS变量中加入: 

 CATALINA_OPTS="... -Djava.awt.headless=true" 

   其他的也可以看看启动脚本。只要加上这个参数就没问题了。

 本文来源于 WEB开发网 原文链接:http://www.cncms.com.cn/jsp/9245.htm

 

[收藏本文]   [发表评论]  [查看评论我要推荐文章

上一篇:JSP上传文件轻松实现 下一篇:在ASP.Net 中实现将图片存入数据库

最新参与TOP10
ascall码
【经典推荐】每个JAVA初学者都应该搞懂的问题
成功安装Mysql+Apache2+php5过程
五种提高 SQL 性能的方法
配置Eclpise+tomcat并实现JSP的编写与部署
Eclipse 3.0 上配置JSP开发环境
PHP中的XML拉模式详解
php的ajax框架xajax入门与试用
win2000server IIS和tomcat5多站点配置
JSP连接SQL Server 2000系统配置

西安信息资源网 版权所有 全球排名

QQ:363694816