百度空间 | 百度首页 
               
 
查看文章
 
ajax、spring和struts结合实现无刷新验证用户名是否存在
2008年03月29日 星期六 21:03
1、jsp页面:
<%@ page language="java" contentType="text/html;charset=utf-8"%>
<html>
<head>
<TITLE>Ajax验证用户名是否存在例子</TITLE>
<script>
//设一个变量
var XMLHttpReq=false;
//创建一个XMLHttpRequest对象
function createXMLHttpRequest(){
    if(window.XMLHttpRequest){ //Mozilla
     XMLHttpReq=new XMLHttpRequest();
     }
     else if(window.ActiveXObject){
      try{
       XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
       }catch(e){
        try{
         XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
         }catch(e){}
         }
        }
       }
//发送请求函数
function send(url){
   createXMLHttpRequest();
   XMLHttpReq.open("get",url,true);
   XMLHttpReq.onreadystatechange=proce;   //指定响应的函数
   XMLHttpReq.send(null); //发送请求
   }
function proce(){
   if(XMLHttpReq.readyState==4){ //对象状态
    if(XMLHttpReq.status==200){//信息已成功返回,开始处理信息   
                <!--测试读取xml开始-->
    var root=XMLHttpReq.responseXML;
    var res=root.getElementsByTagName("content")[0].firstChild.data;
    //window.alert(res);
    document.getElementById("feedback_info").innerHTML = res;
     <!--测试读取xml结束-->  
    //var xmlReturn = XMLHttpReq.responseText;
    //window.alert(xmlReturn);
    }else{
     window.alert("所请求的页面有异常");
     }
     }
     }
//身份验证
function check(){
   var name=document.getElementById("name").value;
   
    if(name==""){
     alert("请输入姓名!");
     return false;
     }
     else{
      //send('login?name='+name);
      document.getElementById("load").style.display='';   
      send('checkUserName.do?name='+name);
      document.getElementById("load").style.display='none';         
      }
     }
    
</script>
</head>
<body>
<form action="login" method="post">
<table>
      <tr><td>姓名: <input id="name" type="text" name="name"/><label id="feedback_info" style="color:#FF0000">&nbsp;</label><p>
       <div id=load style="display:none; position:absolute;right:0px;top:0px;background:#FF5B5B;border:1px solid">正在验证用户名,请稍后……</div><p>
         <input type="button" value="检测!" onClick="check()"/>
      </td>
     </tr>
     </table>
     </form>
</body>
</html>

2、action:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import 导入ITestService包;
/**
* MyEclipse Struts
* Creation date: 03-29-2007
*
* XDoclet definition:
* @struts.action scope="request" validate="true"
*/
public class CheckUserNameAction extends Action {
/*
* Generated Methods
*/
private ITestService myService;
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
try {
       request.setCharacterEncoding("utf-8");
      } catch (Exception e) {
       e.printStackTrace();
      }
      try{
       String msgStr="";
       response.setContentType("text/xml;charset=GB2312");
       response.setHeader("Cache-Control","no-cache");
       String name=(String)request.getParameter("name");
       System.out.println("name = "+name);
       int amount=myService.checkUserName(name);
       //if("gong".equals(name)){ //找查数据库中有无该用户名
       if(amount==11){
       msgStr ="对不起,此用户名已经存在,请更换用户名注册!";
       }else{
       msgStr ="用户未被注册,可以使用!";
       }
       response.getWriter().println("<?xml version='1.0' encoding='GB2312' ?>");
       response.getWriter().println("<root>");
       response.getWriter().println("<content>");
       response.getWriter().print(msgStr);
       response.getWriter().println("</content>");
       response.getWriter().println("</root>");
       response.getWriter().close();
       }catch(Exception ex){
       }
      return null;
}
public void setMyService(ITestService myService) {
this.myService = myService;
}
}
3、struts-config.xml的配置:
<action
      path="/checkUserName"
      scope="request"
      type="org.springframework.web.struts.DelegatingActionProxy" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
   <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
4、applicationContext.xml的配置(在这里不说明数据源的配置):
<bean id="testDAOTarget" class="包名.TestDAOImpl">
<property name="sessionFactory">
   <ref local="sessionFactory"/>
</property>
</bean>
<bean id="testDAO" parent="adstructTxDefinition">
<property name="target">
   <ref local="testDAOTarget"/>
</property>
</bean>

<!-- SERVICE实现类 -->
<bean id="testServiceTarget" class="包名.TestServiceImpl">
<property name="myDAO">
   <ref local="testDAO"/>
</property>
</bean>
<!-- 加入AOP的SERVICE接口 -->
<bean id="testService" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces">
   <value>包名.ITestService</value>
</property>
    <property name="target">
   <ref local="testServiceTarget"/>
</property>
</bean>
<bean name="/checkUserName" class="包名.CheckUserNameAction">
<property name="myService">
   <ref local="testService"/>
</property>
</bean>


类别:Ajax | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu