用Apache Img Tag生成随即验证图片

1/5/2008来源:Java教程人气:6784


  现在网上已有很多通过jsp生成图片的方法。在sitemesh环境下工作的不是很好。
  
  现介绍另一种可选方法:
  
  用Apache Img Tag生成随即验证图片
  
  步骤:
  1、下载jakarta-taglibs-sandbox-image
  假如需要支持gif,下载 PJA Toolkit(在http://www.eteks.com)
  
  2、拷贝相应的jar文件到WEB-INF/lib目录下
  
  3、配置web.xml文件
  <servlet>
  <servlet-name>ImageServlet</servlet-name>
  <servlet-class>org.apache.taglibs.image.ImageServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
  <servlet-name>ImageServlet</servlet-name>
  <url-pattern>/servlet/org.apache.taglibs.image.ImageServlet</url-pattern>
  </servlet-mapping>
  <taglib>
  <taglib-uri>http://jakarta.apache.org/taglibs/image-1.0</taglib-uri>;
  <taglib-location>/WEB-INF/taglibs-image.tld</taglib-location>
  </taglib>
  
  4、配置sitemesh decorators.xml文件
  <excludes>
  <pattern>/decorators/*</pattern>
  <pattern>/resources/*</pattern>
  <pattern>/servlet/*</pattern>
  </excludes>
  
  5、jsp中使用
  I.加入标签头
  <%@ taglib uri="http://jakarta.apache.org/taglibs/image-1.0" prefix="img" %>
  II. 加入代码
  <%
  java.util.Random random = new java.util.Random();
  
  String sRand="";
  for (int i=0;i<4;i++){
  String rand=String.valueOf(random.nextInt(10));
  sRand+=rand;
  }
  session.setAttribute("rand",sRand);
  %>
  <img:image
  src="http://www.QQread.com/images/blank.jpg" refresh="true" >
  <img:text
  text="<%= sRand%>"
  x="0"
  y="0"
  font="Arial"
  bold="true"
  size="12"
  color="0xff0000"
  />
  </img:image>
  III.可选的一种对不同数字使用不同颜色
  <img:image
  src="http://www.qqread.com/java/images/blank.jpg" refresh="true" >
  
  <img:text
  text="2"
  x="0"
  y="0"
  font="Arial"
  bold="true"
  size="12"
  color="0xff0000"
  />
  <img:text
  text="3"
  x="25%"
  y="0"
  font="Arial"
  bold="true"
  size="12"
  color="0x000000"
  />
  <img:text
  text="4"
  x="50%"
  y="0"
  font="Arial"
  bold="true"
  size="12"
  color="0x00ff00"
  />
  <img:text
  text="5"
  x="75%"
  y="0"
  font="Arial"
  bold="true"
  size="12"
  color="0x00ffff"
  />
  </img:image>