使用重写url机制实现验证码换一张功能

网友投稿 287 2023-04-24


使用重写url机制实现验证码换一张功能

重写URL机制:为了保证一个url的地址唯一,可每次向服务器传递的参数不一样即可。

由数据请求的抱头信息可分析到:抱头信息包括http协议,IP地址,端口号,工程名,请求参数列表,要想访问的资源不发生变化,只能变化参数连表。

此处在实现验证码的换一张的功能时,就是利用了改变参数列表的值进行刷新。

详细代码实现:

<%@page import="javax.imageio.ImageIO"%>

<%@page import="java.awt.Font"%>

<%@page import="java.awt.Color"%>

<%@page import="java.awt.Graphics"%>

<%@page import="java.awt.image.BufferedImage"%>

<%@ page contentType="image/jpeg" language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

int w=100;

int h=30;

BufferedImage bi=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);

Graphics g=bi.getGraphics();

Color c=g.getColor();

Font f=g.getFont();

Random r=new Random();

Color bg=new Color(150+r.nextInt(100),150+r.nextInt(100),150+r.nextInt(100));

g.setColor(bg);

g.fillRect(0, 0, w, h);

String code="";

for(int i=1;i<=4;i++){

int num=r.nextInt(10);

code=code+num;

Color num_c=new Color(r.nextInt(150),r.nextInt(150),r.nextInt(150));

g.sethttp://Color(num_c);

g.drawString(String.valueOf(num), 20*i, h/2);

}

request.getSession().setAttribute("code", code);

//清空缓存

response.setHeader("pragma", "bo-cache");

response.setHeader("cache-control", "bo-cache");

response.addDateHeader("expires", 0);

ImageIO.write(bi, "jpeg", response.getOutputStream());

out.close();

%>

添加登录页面:

<%@ page contentType="text/html; charset=utf-8" languagenagmq="java" import="java.util.*" pageEncoding="UTF-8"%>

<%String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

${requestScope.msg }

name:

pwd:

code:换一张

利用时间的变化,每次生成时间戳,传参给请求的url,达到重写url的目的,从而实现了换一张的刷新功能。

总结

以上所述是给大家介绍的使用重写url机制实现验证码换一张功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,会及时回复大家的。在此也非常感谢大家对我们网站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Log4j详细使用教程_动力节点Java学院整理
下一篇:MyBatis入门介绍(超简单)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~