使用AJAX验证指定的用户名是否存在:


ajaxCheck.jsp代码如下:

<%@pagelanguage="java"pageEncoding="GBK"%>

<%@tagliburi="http://struts.apache.org/tags-bean"prefix="bean"%>

<%@tagliburi="http://struts.apache.org/tags-html"prefix="html"%>

<%@tagliburi="http://struts.apache.org/tags-logic"prefix="logic"%>

<%@tagliburi="http://struts.apache.org/tags-tiles"prefix="tiles"%>

<html:htmllang="true">

 <head>

   <title> ajaxCheck.jsp</title>

   <scripttype="text/javascript"language="javascript">   

       varxmlHttpRequest;

       functioncreateXMLHttpRequest(){

          if(window.ActiveXObject){

//判断浏览器是否支持ActiveX控件,如果浏览器不是IE那么实例化一个新的 ActiveX 控件

              return new ActiveXObject("Microsoft.XMLHTTP");

          }else if(window.XMLHttpRequest){

              return new XMLHttpRequest();

          }

       }       

       function checkUserExists(){

       var uname = document.forms[0].userName.value;

           if(uname.length <1){

              alert("用户名不能为空");

              document.forms[0].userName.focus();

              return;

           }

           var url ="userInfo.do?method=responsePage&uname="+uname;

           xmlHttpRequest = createXMLHttpRequest();

           xmlHttpRequest.onreadystatechange=success;  //设置回调方法

           xmlHttpRequest.open("Get",url,true);

           //第一参数指定发送请求的方式,第二个参数指定请求的URL,第三个参数指定请求是同步的、//还是异步的,TRUE表示异步,即在调用send方法发送请求后不用等请求响应继续执行后面//javaScript语句

           xmlHttpRequest.setRequestHeader("If-Modified-since","o");//清空缓冲

           xmlHttpRequest.send(null);

//这个方法具体向服务器发送请求,如果请求为异步的就会立即返回。

       }       

       function success(){

//readyState请求的状态。有5个可取值,0=初始状态 ,1=正在加载,2=已加载,3=交互中,4=完成

          if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status==200){

             var b = xmlHttpRequest.responseText;

             alert(b);

             if(b=="true"){

                alert("用户名已经存在");

             }else{

                alert("用户名可以使用");

             }

             }

       }

   </script>

 </head>

 <body>

   <html:formaction="/userInfo.do?method=addUserInfo"method="post">

     用户名:<html:textproperty="userName"οnblur="checkUserExists()"/><br>

     密码: <html:passwordproperty="password"/><br>

     <html:submitvalue="提交"/>

    </html:form>

 </body>

</html:html>

 

UserInfoAction.java代码如下:

package com.yourcompany.struts.action;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.actions.DispatchAction;

import com.pojo.TblUser;

import com.yourcompany.struts.biz.UserInfoBiz;

import com.yourcompany.struts.form.UserInfoForm;

public class UserInfoAction extends DispatchAction {

   public ActionForward addUserInfo(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response)

           throws Exception {

       UserInfoForm userInfoForm = (UserInfoForm) form;// TODO Auto-generated

       return null;

   }

 

   public ActionForward responsePage(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response)

           throws Exception {

       String name = request.getParameter("uname");

       boolean isExists = this.checkUserName(name);

       response.getWriter().print(isExists);

       return null;

   }

 

   public boolean checkUserName(String name) {

       List<String> list = new ArrayList<String>();

       list.add("scott");

       list.add("mike");

       list.add("jack");

       list.add("jeff");

       boolean flag = list.contains(name);

       return flag;

   }

}

------------------------------------------------------------------------------------------------------- ------------------------------

--------------------------------------------------------------------------------------------------------------------------------------

DWR是在Ajax的基础上搭建的一个框架,都实现了页面局部刷新的功能。以下代码演示了如何使用dwr验证用户名是否存在(首先要加载dwr.jar包到工程的lib目录下)

dwrCheck.jsp代码如下

<%@page language="java"pageEncoding="GBK"%>

<html:htmllang="true">

<scripttype='text/javascript'

    src='/SSHProject_Bak1/dwr/interface/userManager.js'></script>

<scripttype='text/javascript'src='/SSHProject_Bak1/dwr/engine.js'></script>

<scripttype='text/javascript'src='/SSHProject_Bak1/dwr/util.js'></script>

<head>

    <html:base/>

    <title>dwrCheck.jsp</title>

    <scripttype="text/javascript"language="javaScript">

   functioncheckUserName(obj){

       var uname=obj.value;

       userManager.checkUserName(uname,showInfo); //设置回调函数     

   }

   function showInfo(exist){

     if(exist){

        alert("用户名已经存在");

        document.forms[0].userName.focus();

     }else{

        alert("该用户名可以使用");

     }

   }

   </script>

</head>

<body>

    <formaction="">

        用户名:

        <inputtype="text"name="userName"onblur="checkUserName(this)">

        <br>

        密码:

        <inputtype="password"name="password">

        <br>

        <inputtype="submit"value="提交">

        &nbsp;

        <inputtype="reset"value="取消">

    </form>

</body>

</html:html>

 

Dwr.xml代码如下:

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEdwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"

  "http://getahead.org/dwr/dwr20.dtd">

<dwr>

 <allow>

   <create javascript="userManager" creator="new">

         <param name="class" value="com.bean.UserManager"/>

         <include method="checkUserName"/>

   </create>

 </allow>

 </dwr>

UserManager.java代码如下:

package com.bean;

import java.util.ArrayList;

import java.util.List;

publicclass UserManager {

    publicboolean checkUserName(String name){

        boolean exist = checkData(name);

        return exist;

    }   

    publicboolean checkData(String name) {

        List<String> list =new ArrayList<String>();

        list.add("scott");

        list.add("mike");

        list.add("jack");

        list.add("jeff");

        return list.contains(name);

    }

}

 

在工程中配置了dwr框架在Web.xml中应该加入以下代码:

<?xmlversion="1.0"encoding="UTF-8"?>

<web-appxmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"version="2.5"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

 <servlet>

   <servlet-name>dwr-invoker</servlet-name>

   <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

   <init-param>

     <param-name>debug</param-name>

     <param-value>true</param-value>

   </init-param>

 </servlet>

 <servlet-mapping>

   <servlet-name>dwr-invoker</servlet-name>

   <url-pattern>/dwr/*</url-pattern>

 </servlet-mapping>

 <welcome-file-list>

   <welcome-file>index.jsp</welcome-file>

 </welcome-file-list>

</web-app>

 

-------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------

DWR除了指定类实例外还可以与spring集成使用。

以下代码演示了DWRspring集成:

springCheck.jsp代码如下:

<%@pagelanguage="java"pageEncoding="GBK"%>

<html:htmllang="true">

<scripttype='text/javascript'

    src='/SSHProject_Bak1/dwr/interface/userInfoBiz.js'></script>

<scripttype='text/javascript'src='/SSHProject_Bak1/dwr/engine.js'></script>

<scripttype='text/javascript'src='/SSHProject_Bak1/dwr/util.js'></script>

<head>

    <html:base/>

    <title>dwrCheck.jsp</title>

    <scripttype="text/javascript"language="javaScript">

   functioncheckUserName(obj){

       var uname=obj.value;

       userInfoBiz.checkUserName(uname,showInfo);

   }

   function showInfo(exist){

     if(exist){

        alert("用户名已经存在");

        document.forms[0].userName.focus();

     }else{

        alert("该用户名可以使用");

     }

   }

   </script>

</head>

<body>

    <formaction="">

         用户名:

        <inputtype="text"name="userName"onblur="checkUserName(this)">

        <br>

        密码:

        <inputtype="password"name="password">

        <br>

        <inputtype="submit"value="提交">

        &nbsp;

        <inputtype="reset"value="取消">

    </form>

</body>

</html:html>

 

dwr.xml代码如下:

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEdwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"

  "http://getahead.org/dwr/dwr20.dtd">

<dwr>

 <allow>

   <create javascript="userInfoBiz" creator="spring">

       <param name="beanName" value="userInfoBiz"/>

// value="userInfoBiz"对应spring配置文件的id

   </create>

 </allow>

 </dwr>

 

Spring对应的代码如下:

UserInfoBiz.java

package com.yourcompany.struts.biz;

import com.pojo.TblUser;

import com.yourcompany.struts.dao.UserInfoDao;

publicinterfaceUserInfoBiz {

    publicboolean checkUserName(String name);

}

 

 

 

package com.yourcompany.struts.biz.impl;

import java.util.ArrayList;

import java.util.List;

import com.yourcompany.struts.biz.UserInfoBiz;

public class UserInfoBizImpl implements UserInfoBiz {

    public boolean checkUserName(String name) {

             // TODO Auto-generated method stub

             return checkData(name);

    }      

    public boolean checkData(String name) {

             List<String> list = new ArrayList<String>();

             list.add("scott");

             list.add("mike");

             list.add("jack");

             list.add("jeff");

             return list.contains(name);

    }      

}

 

spring配置文件对应的代码如下:

application-service.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

 <bean id="userInfoBiz"

      class="com.yourcompany.struts.biz.impl.UserInfoBizImpl">

 </bean>

</beans>

 

web.xml中添加如下代码:

<!-- web启动时加载applicationContext.xml文件 -->

<context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath:application-service.xml</param-value>

    </context-param>

    <!--监听器配置 -->

    <listener>

        <listener-class>

             org.springframework.web.context.ContextLoaderListener

        </listener-class>

    </listener>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值