利用servlet生成验证码
/**
* ValidateCodeImage调用RandomCode用来产生验证码
*/
package edu.hrbeu.cstcmis.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import edu.hrbeu.cstcmis.image.RandomCode;
public class ValidateCodeImage extends HttpServlet {
public ValidateCodeImage() {
super();
}
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("image/jpeg");
response.setHeader("Pragram","NO-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
RandomCode rc = new RandomCode();
rc.getRandCode(request,response);
}
}
/**
* RandomCode生成图片验证码
*/
package edu.hrbeu.cstcmis.image;
import java.awt.Font;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletException;
import java.io.IOException;
public class RandomCode {
//随机取得一个地址
private synchronized Font getFonts(Random random){
return new Font("Fixedsys",Font.CENTER_BASELINE,18);
}
//返回一个随机颜色
private synchronized Color getRandColor(int fc,int bc,Random random){
if(fc>255)fc=255;
if(bc>255)bc=255;
int r=fc+random.nextInt(bc-fc-6);
int g=fc+random.nextInt(bc-fc-4);
int b=fc+random.nextInt(bc-fc-8);
return new Color(r,g,b);
}
//生成随机数图片
public synchronized void getRandCode(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
System.setProperty("java.awt.headless","true");
HttpSession session=request.getSession();
int width=80,height=26;//设置图片大小
BufferedImage image=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics g=image.getGraphics();
Random random=new Random();
g.fillRect(0, 0, width, height);//设定边框
g.setFont(new Font("Times New Roman",Font.ROMAN_BASELINE,18));
g.setColor(getRandColor(111,133,random));
for(int i=0;i<11;i++){
int x=random.nextInt(width);
int y=random.nextInt(height);
int xl=random.nextInt(13);
int yl=random.nextInt(15);
g.drawLine(x, y, xl, yl);
}
g.setColor(getRandColor(130,150,random));
//产生5个随机数
String sRand="";
for(int i=0;i<5;i++){
sRand="";//此处必须出示化为空
g.setFont(getFonts(random));
g.setColor(new Color(random.nextInt(101),random.nextInt(111),random.nextInt(121)));
String rand=String.valueOf(getRandomString(random.nextInt(36)));
sRand+=rand;
g.translate(random.nextInt(3),random.nextInt(3));
g.drawString(sRand,13*i,16);
}
session.removeAttribute("Rand");
session.setAttribute("Rand", sRand);
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
}
private String getRandomString(int num) {
String randString = "0123456789abcdefghijklmnopqrstuvwxyz";
return String.valueOf(randString.charAt(num));
}
}
分享到:
相关推荐
jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码jsp验证码代码
JSP验证码+自动刷新功能,文件的image.jsp是负责生成验证码的,而display.jsp是负责显示效果.简单易用,平时会出现的异常都已经全部解决.
jsp验证码实现源代码,用jsp做注册验证码
jsp验证码......源码下载jsp验证码......源码下载jsp验证码......源码下载
JSP验证码大全之中文验证码(源码),很好的jsp学习源码验证示例!
5种JSP验证码的源代码.rar
jsp验证码代码 在开发中验证码是比较常用到有效防止这种问题对某一个特定注册用户用特定程序破解方式进行不断的登陆尝试的方式。 此演示程序包括三个文件: 1.login.jsp:登录页面 2.code.jsp:生成验证码图片页面 3....
JSP 验证码 字母 数字JSP 验证码 字母 数字JSP 验证码 字母 数字JSP 验证码 字母 数字JSP 验证码 字母 数字
JSP 验证码代码 JSP 验证码代码 JSP 验证码代码 JSP 验证码代码 JSP 验证码代码 JSP 验证码代码 JSP 验证码代码 JSP 验证码代码
jsp验证码,jsp中文验证码,数字验证码,汉字验证码
四、实验内容 1.在实验四基础上使用AJAX技术实现异步登录功能。(40分) Ajax异步的特点为:多个事件并行发生,事件互不影响,请求之后,不刷新整张页面,页面不动,只是刷新页面的局部。异步数据获取技术 ...
JSP验证码生成需要的Jar包: pmiw.jar taglibs-image.jar
jsp验证码图片例子jsp验证码图片例子jsp验证码图片例子
简单的jsp验证码。
本小例子,通过JSP+servlet 实现的验证码! 可以直接移植到你的项目中去! 如果你正在寻找验证码的小插件,那么这就是你所需要的!
JSP验证码实现源代码,主要采用4为随机生成的数字然后制成相应的图片进行验证,并有验证后的结果显示
使用javascript生成验证码刷新功能
这是一个关于数字做的jsp验证码,有不足的地方希望楼上的朋友给点意见!我想我会做的更好的!
JSP验证码登录程序 Servlet生成验证码 登录验证验证码
jsp验证码,包含一个源码和两个嵌入源码的jsp页面!欢迎下载@