我想做一个验证码的程序,从网上找了一个servlet
然后进行了配置
<servlet>
<servlet-name>ImageServlet</servlet-name>
<servlet-class>test.servlet.ImageServlet</servlet-class>
</servlet><servlet-mapping>
<servlet-name>ImageServlet</servlet-name>
<url-pattern>/ImageServlet</url-pattern>
</servlet-mapping>servlet路径是不错的,然后再jsp中引用
<input type="text" id="verifyCode" name="verifyCode" size="6" styleClass="input-login"/>
<img alt="验证码" id="safecode" src="./ImageServlet">结果什么反应都没有,我试着在servlet中输出一些内容,运行后后台什么都没有,这是怎么回事?
生成验证码的代码是http://blog.csdn.net/sxpujs/archive/2009/04/03/4045559.aspx
然后进行了配置
<servlet>
<servlet-name>ImageServlet</servlet-name>
<servlet-class>test.servlet.ImageServlet</servlet-class>
</servlet><servlet-mapping>
<servlet-name>ImageServlet</servlet-name>
<url-pattern>/ImageServlet</url-pattern>
</servlet-mapping>servlet路径是不错的,然后再jsp中引用
<input type="text" id="verifyCode" name="verifyCode" size="6" styleClass="input-login"/>
<img alt="验证码" id="safecode" src="./ImageServlet">结果什么反应都没有,我试着在servlet中输出一些内容,运行后后台什么都没有,这是怎么回事?
生成验证码的代码是http://blog.csdn.net/sxpujs/archive/2009/04/03/4045559.aspx
解决方案 »
- 从数据库取出的 html标记的文本到前台现实 报js错
- 做SaaS系统,.net性能能和java平台比吗,各自的平台有没有什么好的js框架?
- 一个关于JSTL的问题
- 一个可控的国际化的问题。谢谢。
- PAZU 与WEB打印
- javascriptのinnerHtml又はinnerText
- tomcat连接MYSQL Attempted reconnect 3 times. Giving up
- 一个数据连接问题!
- 在线求救!!!!!急急急急急急急急急急急急
- 怎样将STRING类型的数据存入数据库中数据类型为CHAR的字段中
- 请问如何把yyyy-MM-dd hh:mm:ss格式的时间转换为UTC时间
- 贴一段代码请大家帮忙看看!
<img alt="验证码" id="safecode" src="/ImageServlet">
<td width=140 align=right>验证码</td>
<td align=left><img title="点击更换图片"
src="<%=request.getContextPath() %>/view/page/validateCode.jsp"
onclick="this.src='<%=request.getContextPath() %>/view/page/validateCode.jsp?random='+Math.random();" />
<input name="validateCode" size=6 /></td>
</tr>
import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*"%>
<%!
Color getRandColor(int fc, int bc) {
Random random = new Random();
if (fc > 255)
fc = 255;
if (bc > 255)
bc = 255;
int r = fc + random.nextInt(bc - fc);
int g = fc + random.nextInt(bc - fc);
int b = fc + random.nextInt(bc - fc);
return new Color(r, g, b);
} char randomChar() {
Random random = new Random();
int c = random.nextInt(58) + 65;
if (c > 90 && c < 97)
return randomChar();
return (char) (c);
}
%>
<%
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0); int width = 90, height = 35;
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB); Graphics2D g = (Graphics2D) image.getGraphics();
Random random = new Random(); g.setColor(getRandColor(200, 250));
g.fillRect(0, 0, width, height);
g.setFont(new Font("Arial", Font.PLAIN, 26)); g.setColor(getRandColor(150, 180));
for (int i = 0; i < 100; i++) {
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x, y, x + xl, y + yl);
} String sRand = "";
for (int i = 0; i < 4; i++) {
char c = randomChar();
sRand += c;
g.setColor(new Color(20 + random.nextInt(110), 20 + random
.nextInt(110), 20 + random.nextInt(110)));
int x = 18 * i + 6;
int y = 26;
double r = Math.random() - 0.5;
g.rotate(r, x, y);
g.drawString(c + "", x, y);
g.rotate(-r, x, y);
} out.print(sRand);
session.setAttribute("validateCode", sRand); g.dispose(); ImageIO.write(image, "JPEG", response.getOutputStream());
out.clear();
pageContext.pushBody();
%>这个是 validateCode.jsp 后面的random='+Math.random(); 一定不要忘了。 我以前忘了就是不显示。