使用servlet 实现简单的验证码
来源:互联网 发布:买黄金软件下载 编辑:程序博客网 时间:2024/06/08 13:21
Servlet类
package com.lxs.servlet;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CodeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String codes="abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ0123456789";
BufferedImage img=new BufferedImage(80,30,BufferedImage.TYPE_3BYTE_BGR);
Graphics g=img.getGraphics();
//填充图片
g.setColor(new Color(255,255,255));
g.fillRect(0, 0, 80, 30);
//画入五个随机数
Random rm=new Random();
StringBuffer sb=new StringBuffer();
for(int i=0;i<5;i++){
int index=rm.nextInt(codes.length());
char code=codes.charAt(index);
g.setColor(new Color(rm.nextInt(256),rm.nextInt(256),rm.nextInt(256)));
g.setFont(new Font("宋体", Font.BOLD, 25));
g.drawString(code+"", 2+15*i, 22);
sb.append(code);
}
//画干扰线
for(int i=0;i<10;i++){
g.setColor(new Color(rm.nextInt(256),rm.nextInt(256),rm.nextInt(256)));
g.drawLine(rm.nextInt(100), rm.nextInt(50), rm.nextInt(100), rm.nextInt(50));
}
//将验证码图片回写给浏览器
response.setContentType("image/jpeg;charset=utf-8");
OutputStream out=response.getOutputStream();
ImageIO.write(img, "jpeg", out);
//将随机字符串保存在session中
request.getSession().setAttribute("code", sb.toString());
}
}
web.xml配置
<servlet-name>CodeServlet</servlet-name>
<servlet-class>com.yinhe.web.servlet.CodeServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CodeServlet</servlet-name>
<url-pattern>/checkCode</url-pattern>
</servlet-mapping>
调用
<img src="checkCode" alt="" id="codeImg"
style="width: 80px; height: 30px; border: 1px solid black;" />
<a href="javascript:;" onclick="document.getElementById('codeImg').src = 'checkCode?'+(new Date()).getTime()">换一张</a>
<span id="codemsg" style="color: red; font-size: 20px;"></span>
- 使用servlet 实现简单的验证码
- 最简单的Servlet实现验证码
- 最简单的servlet实现验证码
- Servlet实现简单的验证码
- 简单验证码实现[servlet]
- 【Servlet】实现简单的验证码生成与验证
- 使用Servlet实现验证码
- Web学习之简单验证码的实现(Servlet)
- servlet简单的验证码登录验证
- 使用Servlet制作简单的登陆验证码
- Struts+Servlet简单实现登录验证码
- servlet验证码的实现
- 验证码的Servlet实现
- 验证码的Servlet实现
- 验证码的Servlet实现
- servlet生成验证码验证的实现
- 使用Kaptcha实现简单的验证码
- 使用JSP Servlet和Ajax实现简单的注册页面的用户名密码验证
- ZlycerQan的 八云蓝(ran )
- 求1-100中数字‘9’出现的次数
- QSS(CSS)文件在Qt中的使用
- HDU 1045-Fire Net(DFS)
- 三次样条插值
- 使用servlet 实现简单的验证码
- SpringMVC AJAX异步文件上传
- 浅谈C++中指针和引用的区别
- 敌兵布阵 HDU
- Xstream的序列化与反序列化
- 笔记——全排列函数
- AE开发常见问题
- linux命令大全
- android版本的tensorflow 1.3