周末无事,自己写了一个用户注册信息的,异步校验。不多说,直接上源码:
check.jsp@H_301_7@
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%> <% Stringpath=request.getContextPath(); StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"> <html> <head> <basehref="<%=basePath%>"> <title>基于AJAX校验的用户注册</title> <Metahttp-equiv="pragma"content="no-cache"> <Metahttp-equiv="cache-control"content="no-cache"> <Metahttp-equiv="expires"content="0"> <Metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <Metahttp-equiv="description"content="Thisismypage"> <!-- <linkrel="stylesheet"type="text/css"href="styles.css"> --> <scriptsrc="js/jquery-1.8.2.min.js"></script> <style> #password,#email{ margin-left:34px; } #username{ margin-left:18px; } #checkcode{ width:60px; margin-left:18px; } #buttongroup{ margin-left:15%; } span{ color:red; font-size:12; //display:none; width:100px; height:20p; } #username,#password,#email,#confirmpassword{ width:120px; } #usercheck{ width:550px; margin-left:40%; } .userres{ width:100%; } </style> <script> $(document).ready(function(){ varusername=$("#username"); varpassword=$("#password"); varconfirmpassword=$("#confirmpassword"); varemail=$("#email"); varusername_msg=$("#username_msg"); varemail_msg=$("#email_msg"); varpassword_msg=$("#password_msg"); varemptytips="输入为空."; varxmlHttp;//用于保存XMLHttpRequest对象的全局变量 //用于创建XMLHttpRequest对象 functioncreateXmlHttp(){ //根据window.XMLHttpRequest对象是否存在使用不同的创建方式 if(window.XMLHttpRequest){ xmlHttp=newXMLHttpRequest();//FireFox、Opera等浏览器支持的创建方式 }else{ xmlHttp=newActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式 } } functionshow(nexttarget,str){ $(nexttarget).html(str); $(nexttarget).css("display","block"); } functionhide(nexttarget){ setTimeout(function(){ $(nexttarget).hide(); },5000); } $("#username").focus(); varflag="0"; $("input:text").bind("blur",function(e){ vartarget=e.target; if(target.value==""){ varnexttarget=$(this).next(); show(nexttarget,emptytips); hide(nexttarget); }else{ varuserdata=$(this).val(); flag=this.id; varquery="flag="+flag+"&userdata="+userdata; createXmlHttp(); xmlHttp.onreadystatechange=handler; xmlHttp.open("GET","queryInfro.action?"+query,true); xmlHttp.send(null); } }); functionhandler(){ //debugger; varrighttips=["该用户名可以使用.","该邮箱可以使用."]; varerrortips=["该用户名已存在.","该邮箱已存在."]; varreturnflag=""; varflag2=""; if(xmlHttp.readyState==4&&xmlHttp.status==200){ returnflag=JSON.parse(xmlHttp.responseText).returnflag; flag2=JSON.parse(xmlHttp.responseText).flag; if(returnflag.trim()=="SUCCESS"){ if(flag2.trim()=="username"){ show(username_msg,errortips[0]); hide(username_msg); } if(flag2.trim()=="email"){ show(email_msg,errortips[1]); hide(email_msg); } }else{ if(flag2.trim()=="username"){ show(username_msg,righttips[0]); hide(username_msg); } if(flag2.trim()=="email"){ show(email_msg,righttips[1]); hide(email_msg); } } } } $("form").bind("submit",function(){ if(username.val()==""){ show(username_msg,emptytips); hide(username_msg); returnfalse; } if(email.val()==""){ show(email_msg,emptytips); hide(email_msg); returnfalse; } if(password.val()==""){ show(password_msg,emptytips); hide(password_msg); returnfalse; } if(password.val()!=confirmpassword.val()){ show(password_msg,"两次密码输入不一致."); hide(password_msg); returnfalse; } }); }); </script> </head> <body> <formid="userform"action="register.action"method="post"> <center><h3>用户注册校验<h3/></center> <divid="usercheck"> <divclass="userres"><label>用户名:</label><inputtype="text"id="username"class="error"/><spanid="username_msg"></span></div> <divclass="userres"><label>密码:</label><inputtype="password"id="password"><spanid="password_msg"></span></div> <divclass="userres"><label>确认密码:</label><inputtype="password"id="confirmpassword"></div> <divclass="userres"><label>邮箱:</label><inputtype="text"id="email"><spanid="email_msg"></span></div> <divid="buttongroup"><inputid="submitformbut"type="submit"value="提交"/><inputtype="reset"value="重置"/></div> </div> </form> </body> </html>
@H_301_7@
struts,配置文件:struts.xml
<?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constantname="struts.devMode"value="true"></constant> <constantname="struts.custom.i18n.resources"value="faq"></constant> <constantname="struts.i18n.encoding"value="UTF-8"></constant> <packagename="faq"extends="json-default"> <actionname="getFaq"class="com.ajax.action.FaqAction"method="getFaqs"> <resultname="SUCCESS"type="json"> </result> </action> <actionname="getFaq"class="com.ajax.action.FaqAction"method="getFaqs"> <resultname="SUCCESS"type="json"> </result> </action> </package> <packagename="post"extends="json-default"> <actionname="queryInfro"class="com.ajax.action.CheckAction"method="queryExsit"> <resultname="SUCCESS"type="json"> </result> <resultname="ERROR"type="json"> </result> </action> <actionname="register"class="com.ajax.action.CheckAction"method="register"> <resultname="SUCCESS"> ./MyJsp.jsp </result> </action> <actionname="getPostList"class="com.ajax.action.PostAction"method="showPostListInfro"> <resultname="SUCCESS"type="json"> </result> </action> </package> </struts>
@H_301_7@
Action层,CheckAction.java
packagecom.ajax.action; importcom.ajax.service.CheckService; importcom.ajax.util.RandomValidateCode; importcom.opensymphony.xwork2.ActionSupport; publicclassCheckActionextendsActionSupport{ publicStringflag; publicStringuserdata; publicStringreturnflag; publicStringgetReturnflag(){ returnreturnflag; } publicvoidsetReturnflag(Stringreturnflag){ this.returnflag=returnflag; } publicCheckServicegetCheckservice(){ returncheckservice; } publicvoidsetCheckservice(CheckServicecheckservice){ this.checkservice=checkservice; } CheckServicecheckservice=newCheckService(); publicStringgetFlag(){ returnflag; } publicvoidsetFlag(Stringflag){ this.flag=flag; } publicStringgetUserdata(){ returnuserdata; } publicvoidsetUserdata(Stringuserdata){ this.userdata=userdata; } publicStringqueryExsit(){ System.out.println("flag:"+flag); BooleanreturnVal=checkservice.checkUser(flag,userdata); if(returnVal==true){ System.out.println("SUCCESS:"+SUCCESS); returnflag="SUCCESS"; return"SUCCESS"; }else{ System.out.println("ERROR:"+ERROR); returnflag="ERROR"; return"ERROR"; } } publicStringregister(){ System.out.println("注册成功"); return"SUCCESS"; } } Service层,CheckService.java packagecom.ajax.service; importcom.ajax.dao.CheckUserDao; importcom.ajax.daoimpl.CheckUserDaoImpl; publicclassCheckService{ CheckUserDaocheckdao=newCheckUserDaoImpl(); privateStringrowflag=""; publicStringcheckUserName(){ returnnull; } publicStringcheckUserEmail(){ returnnull; } publicBooleancheckUser(Stringflag,Stringuserdata){ returncheckdao.checkUserInfro(flag,userdata); } }
@H_301_7@
DAO层,CheckUserDao.java
packagecom.ajax.dao; publicinterfaceCheckUserDao{ publicBooleancheckUserInfro(Stringrowflag,Stringuserdata); } DAO实现层,CheckUserDaoImpl.java packagecom.ajax.daoimpl; importjava.sql.Connection; importjava.sql.ResultSet; importjava.sql.sqlException; importjava.sql.Statement; importcom.ajax.dao.CheckUserDao; importcom.ajax.util.DB; publicclassCheckUserDaoImplimplementsCheckUserDao{ Connectionconn=null; Statementstmt=null; ResultSetrs=null; /* *判断用户信息是否已存在 *@seecom.ajax.dao.CheckUserDao#checkUserInfro(java.lang.String,java.lang.String) */ publicBooleancheckUserInfro(Stringflag,Stringuserdata){ Stringsql="select*fromuserwhere"+flag+"='"+userdata+"'"; System.out.println(sql); conn=DB.getConn(); stmt=DB.getStatement(conn); rs=DB.getResultSet(stmt,sql); try{ if(rs.next()){ returntrue; }else{ returnfalse; } }catch(sqlExceptione){ e.printStackTrace(); returnfalse; } } }
@H_301_7@
Model层,UserInfr.java@H_301_7@
packagecom.ajax.model; publicclassUserInfr{ publicStringusername; publicStringpassword; publicStringemail; publicStringgetUsername(){ returnusername; } publicvoidsetUsername(Stringusername){ this.username=username; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } publicStringgetEmail(){ returnemail; } publicvoidsetEmail(Stringemail){ this.email=email; } }原文链接:https://www.f2er.com/ajax/164640.html