資源描述:
《ssh整合ajax驗(yàn)證用戶名存在和驗(yàn)證碼的完整實(shí)例》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、SSH整合AJAX驗(yàn)證用戶名存在和驗(yàn)證碼的完整實(shí)例一(含代碼)——AJAX學(xué)習(xí)筆記SSH三大框架如何整合,在我前幾篇博文中已經(jīng)很詳細(xì)的介紹了,如果還有什么問(wèn)題的,請(qǐng)查看我的博文Struts+Spring+Hibernate整合注冊(cè)登錄,謝謝。那么現(xiàn)在就詳細(xì)地介紹一下AJAX了。AJAX自己也是最近才學(xué)了一點(diǎn),里面的一些框架或者知識(shí)只是略懂一些,寫(xiě)的不好請(qǐng)大家原諒。下面是一個(gè)簡(jiǎn)單的使用AJAX進(jìn)行驗(yàn)證用戶名的,一般AJAX給人感覺(jué)的好處就是異步進(jìn)行交互,讓我們感覺(jué)頁(yè)面并沒(méi)有其他的動(dòng)作(刷新),還有一個(gè)我感覺(jué)就是屏蔽了以前很惱人的alert彈出框了(這種驗(yàn)證在以前真的很多),讓我們感覺(jué)頁(yè)面做的更友
2、好了,交互性更能跟上現(xiàn)在的web應(yīng)用。有人會(huì)說(shuō),Struts中不是有服務(wù)器端驗(yàn)證碼,而且給人的交互也是很好的,那為什么還需要AJAX進(jìn)行驗(yàn)證了?以我的經(jīng)驗(yàn)和愛(ài)好的話說(shuō),我覺(jué)得服務(wù)器端和客戶端的驗(yàn)證都必須要,這個(gè)有的時(shí)候是為了防止別人進(jìn)行惡意的網(wǎng)址注入,也許現(xiàn)在我們做了更完善的驗(yàn)證的話,以后我們的網(wǎng)站就少了很多不必要的惡意破壞。好了,現(xiàn)在就來(lái)說(shuō)說(shuō)下面的AJAX技術(shù)了,下面的例1,是一個(gè)很簡(jiǎn)單用戶名驗(yàn)證存在的驗(yàn)證js和Servlet,實(shí)際上是沒(méi)有技術(shù)含量的,其中返回的數(shù)據(jù)就可能有兩種了,一種以html的格式,另一種就是xml了,例1給的是html格式的,xml的格式的代碼就不貼了,說(shuō)一下了。有兩個(gè)
3、修改點(diǎn)了,修改點(diǎn)1----響應(yīng)的Content-Type必須是text/xmlhttpServletResponse.setContentType("text/xml;charset=utf-8");修改點(diǎn)2-----返回的數(shù)據(jù)需要拼裝成xml格式PrintWriterout=httpServletResponse.getWriter();Stringold=httpServletRequest.getParameter("name");//修改點(diǎn)2-----返回的數(shù)據(jù)需要拼裝成xml格式StringBuilderbuilder=newStringBuilder();builder.appen
4、d("");……builder.append("");out.println(builder.toString());后面就是接收方法了,實(shí)際上也沒(méi)有太大區(qū)別,就是接收的是xml語(yǔ)句,我們需要解析后就可以一樣使用了。(具體實(shí)現(xiàn)請(qǐng)參考網(wǎng)上提供的教程或者我提供下載的代碼)//例1:簡(jiǎn)單的使用AJAX,返回的數(shù)據(jù)是html//定義用戶名校驗(yàn)的方法functionverify(){//首先測(cè)試一下頁(yè)面的按鈕按下,可以調(diào)用這個(gè)方法//使用javascript的alert方法,顯示一個(gè)探出提示框//alert("按鈕被點(diǎn)擊了?。?!");//1.獲取文本框中的內(nèi)容//d
5、ocument.getElementById("userName");dom的方式//Jquery的查找節(jié)點(diǎn)的方式,參數(shù)中#加上id屬性值可以找到一個(gè)節(jié)點(diǎn)。//jquery的方法返回的都是jquery的對(duì)象,可以繼續(xù)在上面執(zhí)行其他的jquery方法varjqueryObj=$("#userName");//獲取節(jié)點(diǎn)的值varuserName=jqueryObj.val();//alert(userName);//2.將文本框中的數(shù)據(jù)發(fā)送給服務(wù)器段的servelt//使用jquery的XMLHTTPrequest對(duì)象get請(qǐng)求的封裝$.get("AJAXServer?name="+userNam
6、e,null,callback);}//回調(diào)函數(shù)functioncallback(data){//alert("服務(wù)器段的數(shù)據(jù)回來(lái)了??!");//3.接收服務(wù)器端返回的數(shù)據(jù)//alert(data);//4.將服務(wù)器段返回的數(shù)據(jù)動(dòng)態(tài)的顯示在頁(yè)面上//找到保存結(jié)果信息的節(jié)點(diǎn)varresultObj=$("#result");//動(dòng)態(tài)的改變頁(yè)面中div節(jié)點(diǎn)中的內(nèi)容resultObj.html(data);}importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.serv
7、let.http.HttpServletResponse;importjavax.servlet.ServletException;importjava.io.IOException;importjava.io.PrintWriter;importjava.net.URLDecoder;/***Servlet,用于驗(yàn)證用戶名的*/publicclassAJAXServerextendsHttpSe