成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JSP驗證碼學習筆記

開發 前端 后端
本文通過實例,介紹在做JSP驗證碼的時候為了給用戶很好的體驗,需要在原有驗證方式基礎之上增加一段js,通過xmlhttp來獲取返回值,以此來驗證是否有效。同時,本例還特別適合檢驗用戶名是否有效。

1、我們在做JSP驗證碼的時候往往由于要反作弊,驗證有時故意加入多的干擾因素,這時JSP驗證碼顯示不很清楚,用戶經常輸入錯誤。這樣不但要重新刷新頁面,導致用戶沒有看清楚驗證碼而重填而不是修改,而且如果沒有用session保存下用戶輸入的其它數據的話(如姓名),用戶剛剛輸入的內容也不存在了,這樣給用戶造成不好的體驗。

2、本例在原有驗證方式基礎之上增加一段js,通過xmlhttp來獲取返回值,以此來驗證是否有效,這樣即使用戶瀏覽器不支持js,也不會影響他的正常使用了。

3、為了防止作弊,當用戶連接3次輸入錯誤時則重載一下圖片,這樣也利于用戶因為圖片上的驗證碼辨認不清而使其終無法輸入正確。

4、本例還特別適合檢驗用戶名是否有效,只要從后臺做個sql查詢,返回一個值或是xml即可。(這種例子太多 ,就在此不贅述了)。

5、本例的優點在于非常方便用戶輸入,而且減少對服務器端的請求,可以說既改善用戶體驗而且略會節省帶寬成本,但相應地要在頁面上增加一段JavaScript代碼,在目前網速越來越快人們要求便捷舒適的今天,似乎我們更應注意提供給用戶良好的使用感受。

代碼如下:

1、img.jsp,輸入主頁面

<%@ page contentType="text/html; charset=GBK" language="java"

import="java.sql.*" errorPage="" pageEncoding="GBK"%>
<%
//set Chinese Char
//Cody by JarryLi@gmail.com;
//homepage:jiarry.126.com
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
response.setContentType("text/html; charset=GBK");
%>






AJAX(無刷新及時提示)驗證碼實例!cody by jarry



<%
String num=request.getParameter("num");
String random=(String)session.getAttribute("random");
String name=request.getParameter("name");
if(num!=null&&random!=null&&name!=null)
{
 if(num.equals(random))
 { 
  out.println("

恭喜您,驗證碼輸入成功,這里是提交結果頁面,可以寫入數據庫了!

返回再測試
");
  out.println("您的名字是:"+name);
  out.println("
");
  out.println("您輸入的是:"+num);
  out.println("驗證碼是:"+random);
  out.println("");
   return;//javascript:history.go(-1)
  }
}
%>

 

onsubmit="return validata(this);">
您的姓名: (為了更好地說明此例,特加姓名一項)

驗 證 碼:

驗證碼看不清




 




2、num.jsp,反饋xmlhttp請求的頁面

3、random.jsp,生成驗證碼圖片的頁面

4、net.js,封裝好的xmlhttp對象,可以很方便的調用

  1. namespacingobject*/varnet=newObject();net.READY_STATE_UNINITIALIZED=0;
    net.READY_STATE_LOADING=1;  
  2. net.READY_STATE_LOADED=2;net.READY_STATE_INTERACTIVE=3;  
  3. net.READY_STATE_COMPLETE=4;  
  4. contentloaderobjectforcross-browserrequests  
  5. net.ContentLoader=function(url,on_load,on_error,method,params,contentType){  
  6. this.req=null;  
  7. this.on_load=on_load;  
  8. this.on_error=(on_error)?on_error:this.defaultError;  
  9. this.loadXMLDoc(url,method,params,contentType);  
  10. }  
  11. net.ContentLoader.prototype.loadXMLDoc=function(url,method,params,contentType){  
  12. if(!method){  
  13. method="GET";  
  14. }  
  15. if(!contentType&&method=="POST"){  
  16. contentType='application/x-www-form-urlencoded';  
  17. }  
  18. if(window.XMLHttpRequest){  
  19. this.req=newXMLHttpRequest();  
  20. }  
  21. elseif(window.ActiveXObject){  
  22. //addtrycatch;try{  
  23. this.req=newActiveXObject("Msxml2.XMLHTTP");  
  24. }  
  25. catch(e1){  
  26. try{  
  27. this.req=newActiveXObject("Microsoft.XMLHTTP");  
  28. }  
  29. catch(e2){  
  30. }  
  31. }  
  32. ////this.req=newActiveXObject("Microsoft.XMLHTTP");  
  33. }  
  34. if(this.req){  
  35. try{  
  36. varloader=this;  
  37. this.req.onreadystatechange=function(){  
  38. net.ContentLoader.onReadyState.call(loader);  
  39. }  
  40. this.req.open(method,url,true);  
  41. if(contentType){  
  42. this.req.setRequestHeader('Content-Type',contentType);  
  43. }  
  44. this.req.send(params);  
  45. }  
  46. catch(err){  
  47. this.on_error.call(this);  
  48. }  
  49. }  
  50. }net.ContentLoader.onReadyState=function(){  
  51. varreq=this.req;  
  52. varready=req.readyState;  
  53. if(ready==net.READY_STATE_COMPLETE){  
  54. varhttpStatus=req.status;  
  55. if(httpStatus==200||httpStatus==0){  
  56. this.on_load.call(this);  
  57. }  
  58. else{  
  59. this.on_error.call(this);  
  60. }  
  61. }  
  62. }net.ContentLoader.prototype.defaultError=function(){  
  63. alert("errorfetchingdata!"+"\n\nreadyState:"+this.req.readyState+"\nstatus:
    "+this.req.status+"\nheaders:"+this.req.getAllResponseHeaders());  

以上介紹JSP驗證碼學習筆記

【編輯推薦】

  1. JSP開發技術應用詳解
  2. 詳解JSP開發環境的配置
  3. JScript、Java、JavaScript和JSP總結
  4. 詳解JSP開發環境的配置
  5. 詳解ASP和JSP比較
責任編輯:佚名 來源: 中國IT實驗室
相關推薦

2009-08-13 10:47:29

C#創建驗證碼

2013-06-19 10:19:59

2020-11-16 07:28:53

驗證碼

2009-02-09 14:17:36

2015-03-23 17:58:04

驗證碼倒計時并行

2022-02-11 07:10:15

驗證碼

2015-09-21 15:31:05

php實現驗證碼

2017-12-21 07:38:19

2021-01-19 10:29:34

短信驗證碼密碼

2015-03-17 09:28:04

2011-11-02 12:43:33

2011-11-02 16:46:41

2019-06-18 07:12:25

驗證碼漏洞加密

2016-11-14 15:40:01

Android

2020-07-31 07:56:47

驗證碼

2009-11-26 10:48:59

PHP驗證碼

2009-12-11 15:17:52

PHP驗證碼調用

2009-12-16 15:46:41

Ruby on rai

2016-11-08 19:19:06

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜视频一区二区 | 亚洲欧洲日本国产 | 欧美成人精品激情在线观看 | 午夜精品一区 | 亚洲精品视频一区二区三区 | 亚洲欧美在线观看 | 欧美电影在线观看网站 | 狠狠草视频 | 欧美日韩综合精品 | 99精品视频免费在线观看 | 91视视频在线观看入口直接观看 | 亚洲一区二区久久久 | 国产精品亚洲精品 | 超碰国产在线 | 亚洲a在线观看 | 91免费福利视频 | 国产高清在线精品一区二区三区 | 成人国产精品久久 | 国产成人99久久亚洲综合精品 | 中文字幕一区二区三区四区不卡 | 一区二区在线 | 精品国产一区一区二区三亚瑟 | 久久久久久综合 | 日韩在线观看一区 | 欧美成人影院在线 | 午夜影院黄| 天啪| 一二三区av| 在线第一页 | 国产精品亚洲一区 | 中文字幕视频一区 | www.欧美视频 | 婷婷毛片 | 黄 色 毛片免费 | 日韩在线免费播放 | 国产亚洲第一页 | 亚洲免费网站 | 伊人网一区 | 国产欧美视频一区 | a级免费视频 | 国产精品日韩高清伦字幕搜索 |