现在网上已有很多通过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="../../../../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="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> |