使用AJAX完成用户名是否存在异步校验
使用AJAX完成用户名是否存在异步校验:
1.事件触发:
*onblur
2.编写AJAX代码:
*项Action中提交:传递username参数
3.编写Action
*接收username:模型驱动接收.
4.*编写实体类
*User
*User.hbm.xml
*配置到spring中.
5.编写DAO
*继承HibernateDaoSupport
*在配置中注入sessionFactory
6.编写Service:
*注入UserDao
*事务管理:
核心代码实现:
functioncheckUsername(){ //获得文件框值: varusername=document.getElementById("username").value; //1.创建异步交互对象 varxhr=createXmlHttp(); //2.设置监听 xhr.onreadystatechange=function(){ if(xhr.readyState==4){ if(xhr.status==200){ document.getElementById("span1").innerHTML=xhr.responseText; } } } //3.打开连接 xhr.open("GET","${pageContext.request.contextPath}/user_findByName.action?time="+newDate().getTime()+"&username="+username,true); //4.发送 xhr.send(null); } functioncreateXmlHttp(){ varxmlHttp; try{//Firefox,Opera8.0+,Safari xmlHttp=newXMLHttpRequest(); } catch(e){ try{//InternetExplorer xmlHttp=newActiveXObject("Msxml2.XMLHTTP"); } catch(e){ try{ xmlHttp=newActiveXObject("Microsoft.XMLHTTP"); } catch(e){} } } returnxmlHttp; }
publicStringfindByName()throwsIOException{ //调用Service进行查询: UserexistUser=userService.findByUsername(user.getUsername()); //获得response对象,项页面输出: HttpServletResponseresponse=ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); //判断 if(existUser!=null){ //查询到该用户:用户名已经存在 response.getWriter().println("<fontcolor='red'>用户名已经存在</font>"); }else{ //没查询到该用户:用户名可以使用 response.getWriter().println("<fontcolor='green'>用户名可以使用</font>"); } returnNONE; }
privateUserDaouserDao; publicvoidsetUserDao(UserDaouserDao){ this.userDao=userDao; } //按用户名查询用户的方法: publicUserfindByUsername(Stringusername){ returnuserDao.findByUsername(username); }
publicUserfindByUsername(Stringusername){ Stringhql="fromUserwhereusername=?"; List<User>list=this.getHibernateTemplate().find(hql,username); if(list!=null&&list.size()>0){ returnlist.get(0); } returnnull; }
<?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!--配置连接池:--> <!--引入外部属性文件--> <context:property-placeholderlocation="classpath:jdbc.properties"/> <!--配置C3P0连接池:--> <beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"> <propertyname="driverClass"value="${jdbc.driver}"/> <propertyname="jdbcUrl"value="${jdbc.url}"/> <propertyname="user"value="${jdbc.user}"/> <propertyname="password"value="${jdbc.password}"/> </bean> <!--Hibernate的相关信息--> <beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!--注入连接池--> <propertyname="dataSource"ref="dataSource"/> <!--配置Hibernate的其他的属性--> <propertyname="hibernateProperties"> <props> <propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <propkey="hibernate.show_sql">true</prop> <propkey="hibernate.format_sql">true</prop> <propkey="hibernate.connection.autocommit">false</prop> <propkey="hibernate.hbm2ddl.auto">update</prop> </props> </property> <!--配置Hibernate的映射文件--> <propertyname="mappingResources"> <list> <value>cn/itcast/shop/user/vo/User.hbm.xml</value> </list> </property> </bean> <!--事务管理:--> <!--事务管理器--> <beanid="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <propertyname="sessionFactory"ref="sessionFactory"/> </bean> <!--开启注解事务--> <tx:annotation-driventransaction-manager="transactionManager"/> <!--Action的配置===========================--> <!--首页访问的Action--> <beanid="indexAction"class="cn.itcast.shop.index.action.IndexAction"scope="prototype"> </bean> <!--配置验证码Action--> <beanid="checkImgAction"class="cn.itcast.shop.user.action.CheckImgAction"scope="prototype"> </bean> <!--用户模块的Action--> <beanid="userAction"class="cn.itcast.shop.user.action.UserAction"scope="prototype"> <!--注入Service--> <propertyname="userService"ref="userService"/> </bean> <!--Service的配置===========================--> <beanid="userService"class="cn.itcast.shop.user.service.UserService"> <propertyname="userDao"ref="userDao"/> </bean> <!--Dao的配置===========================--> <beanid="userDao"class="cn.itcast.shop.user.dao.UserDao"> <propertyname="sessionFactory"ref="sessionFactory"/> </bean> </beans> [html]viewplaincopy在CODE上查看代码片派生到我的代码片 <?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constantname="struts.devMode"value="false"/> <constantname="struts.enable.DynamicMethodInvocation"value="true"/> <packagename="shop"extends="struts-default"namespace="/"> <global-results> <resultname="msg">/WEB-INF/jsp/msg.jsp</result> </global-results> <!--配置首页访问的Action--> <actionname="index"class="indexAction"> <resultname="index">/WEB-INF/jsp/index.jsp</result> </action> <!--配置用户模块的Action--> <actionname="user_*"class="userAction"method="{1}"> <resultname="registPage">/WEB-INF/jsp/regist.jsp</result> <resultname="input">/WEB-INF/jsp/regist.jsp</result> <resultname="loginPage">/WEB-INF/jsp/login.jsp</result> <resultname="login">/WEB-INF/jsp/login.jsp</result> <resultname="loginSuccess"type="redirectAction">index</result> <resultname="quit"type="redirectAction">index</result> <resultname="checkcodeFail">/WEB-INF/jsp/regist.jsp</result> </action> <!--验证码Action--> <actionname="checkImg"class="checkImgAction"></action> </package> </struts>
以上所述是小编给大家介绍的使用AJAX完成用户名是否存在异步校验,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!