jsp参考servlet生成验证码演示代码
这个演示代码包括以下三个部分:1.checkcode.java:用于生成验证码
2.checkcodeservler
3.check.jsp验证
以下是checkcode.java内容:
复制代码代码如下所示:
用于获取四位随机数
私人maptable { } = {字符'0'、'1',2,3,4,5,6,7,8。
生成代码,并返回一个随机生成的数字。
公共字符串(宽度,高度getensure int,OutputStream OS){
如果(宽度0)
宽度= 60;
如果(身高0)
高度= 20;
BufferedImage图像=新的BufferedImage(宽度,高度,type_int_rgb BufferedImage。);
获取图形上下文
图G = image.getgraphics();
设置背景色
g.setcolor(新的颜色(0xdccccc));
g.fillrect(0, 0,宽度,高度);
绘制框
G.setColor(颜色。黑色);
g.drawrect(0, 0,宽度1,高度1);
获取随机生成的验证码
字符串strensure ;
4 4核查码的代表
对于(int = i 0;i < 4;+ i i){
strensure = maptable {(int)(maptable。长度)(*数学。随机)};
}
身份验证代码是图像显示。
g.setcolor(颜色。红色);
g.setfont(新字体(大西洋内联
特定坐标
字符串strensure.substring(0, 1);
G.drawString(STR,8, 14);
STR = strensure.substring(1, 2);
G.drawString(STR,20, 15);
STR = strensure.substring(2, 3);
G.drawString(STR,35, 18);
STR = strensure.substring(3, 4);
G.drawString(STR,45, 15);
发布/图形上下文
G.dispose();
尝试{
将输出图像发送到页面
imageio.write(图像,JPEG
} catch(IOException e){
返回;
}
返回strensure; / /返回一个随机数的生成
}
这是checkcodeservlet内容了
复制代码代码如下所示:
public void doGet(HttpServletRequest请求,HttpServletResponse响应)
抛出IOException {返回,
DoPost(请求、响应);
}
public void doPost(HttpServletRequest请求,HttpServletResponse响应)
抛出IOException {返回,
/禁用缓存,每次访问页面,以生成
response.setheader(语用
response.setheader(缓存控制
response.setdateheader(到期
用于生成对象的验证代码
码即=新码();
内的方法调用,返回字符串生成的验证代码
字符串ie.getensure(0,0,response.getoutputstream());
获取会话,并将存储在会话中的字符串作为下面比较的基础
request.getsession HttpSession会话=();
session.setattribute(strensure
}
然后Servlet的web.xml配置
复制代码代码如下所示:
checkservlet
com.blog.servlet.checkservlet
checkservlet
/检查
最后,引用jsp页面
复制代码代码如下所示:
验证码
重新获取验证字符
changeimage()函数
{
单击图片以触发重新加载事件,替换图片验证代码。
document.getelementbyid(imgrandom)。src= document.getelementbyid(imgrandom)。Src +;
}
隐形
在JSP页面中,你只需要点的IMG SRC属性的生成验证码的servlet,并指向URL在web.xmlt servle映射。