全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

使用重写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.setColor(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" language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%String path = request.getContextPath(); 
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
 <head> 
  <base href="<%=basePath%>" rel="external nofollow" > 
  <title>My JSP 'login.jsp' starting page</title> 
  <meta http-equiv="pragma" content="no-cache"> 
  <meta http-equiv="cache-control" content="no-cache"> 
  <meta http-equiv="expires" content="0">   
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
  <meta http-equiv="description" content="This is my page"> 
  <!-- 
  <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" > 
  --> 
  <script type="text/javascript"> 
function changeimage(){ 
var d=new Date();//生成时间戳, 
document.getElementById("img").src="image.jsp?t="+d;//由变化的时间使参数连表发生变化,url重写 
} 
</script> 
 </head> 
 <body> 
 <font color="red">${requestScope.msg }</font> 
  <form action="loginServlet" method="post"> 
  name:<input type="text" name="uname"><br> 
  pwd:<input type="pwd" name="upwd"><br> 
  code:<input type="text" name="code" size="5"><img id="img" alt="" src="image.jsp "><a onclick="changeimage()">换一张</a><br> 
  <input type="submit" > 
  </form> 
 </body> 
</html> 

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

总结

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


# 重写url  # 验证码  # PHP curl模拟登录带验证码的网站  # PHP使用CURL实现对带有验证码的网站进行模拟登录的方法  # 重写  # 小编  # 在此  # 要想  # 给大家  # 所述  # 给我留言  # 感谢大家  # 清空  # 端口号  # 疑问请  # 有任何  # 实现了  # drawString  # num  # num_c  # request  # getSession  # valueOf 


相关文章: 如何在IIS中新建站点并配置端口与物理路径?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  建站之星价格显示格式升级,你的预算足够吗?  建站OpenVZ教程与优化策略:配置指南与性能提升  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  如何快速使用云服务器搭建个人网站?  一键制作网站软件下载安装,一键自动采集网页文档制作步骤?  如何正确下载安装西数主机建站助手?  ,购物网站怎么盈利呢?  C++如何使用std::optional?(处理可选值)  如何挑选最适合建站的高性能VPS主机?  怀化网站制作公司,怀化新生儿上户网上办理流程?  如何在万网自助建站中设置域名及备案?  建站之星ASP如何实现CMS高效搭建与安全管理?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  如何通过VPS搭建网站快速盈利?  建站之星在线版空间:自助建站+智能模板一键生成方案  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  小建面朝正北,A点实际方位是否存在偏差?  如何在Ubuntu系统下快速搭建WordPress个人网站?  高性价比服务器租赁——企业级配置与24小时运维服务  建站之星如何开启自定义404页面避免用户流失?  兔展官网 在线制作,怎样制作微信请帖?  建站主机服务器选购指南:轻量应用与VPS配置解析  完全自定义免费建站平台:主题模板在线生成一站式服务  如何通过远程VPS快速搭建个人网站?  建站之星各版本价格是多少?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  建站主机系统SEO优化与智能配置核心关键词操作指南  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  TestNG的testng.xml配置文件怎么写  代刷网站制作软件,别人代刷火车票靠谱吗?  建站之星后台管理系统如何操作?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  零服务器AI建站解决方案:快速部署与云端平台低成本实践  Swift中循环语句中的转移语句 break 和 continue  定制建站价位费用解析与套餐推荐全攻略  如何制作算命网站,怎么注册算命网站?  如何选择高效稳定的ISP建站解决方案?  如何通过多用户协作模板快速搭建高效企业网站?  如何在宝塔面板创建新站点?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  代购小票制作网站有哪些,购物小票的简要说明? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。