struts action使用ajax验证用户名是否有被注册

最近在看一个项目视频,上面使用了ajax来验证用户名是否有被注册 ,但是它使用的是servlet+ajax来验证,但是我觉得这样有点麻烦,

因为还要单独写一个servlet来处理数据,何不就在action当中来完成这样的操作呢?我是新人,可能我有些地方不懂,希望懂的提出来指正一下

我们互相学习!下面是代码

ajax引擎:

function ajax(){  
		   var xmlHttp;  
		   try{ // Firefox, Opera 8.0+, Safari  
		        xmlHttp=new XMLHttpRequest();  
		    }  
		    catch (e){  
		       try{// Internet Explorer  
		             xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");  
		          }  
		        catch (e){  
		          try{  
		             xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");  
		          }  
		          catch (e){}  
		          }  
		    }  
		    return xmlHttp;  
		 }  

其实我个人是反感给各种功能 函数取各种一看就不知其所以然的名字,比如说这个a函数 叫做ajax引擎,是在是让我无法理解,这样很不利于初学者的学习和使用!反正而会让人觉得云里雾里!


javascript验证函数:

function checkLogonName(){  
	      
	    /* logonName */  
	    var logonName = document.getElementById("logonName").value;  

	    var xhr = ajaxFunction();  

	    xhr.onreadystatechange = function(){  
	        if(xhr.readyState==4){  
	            if(xhr.status==200){  
	                var data = xhr.responseText;        //获取文本  
	                if(data=="1"){  
	                	alert("该用户名已经被注册");
	                   
	                  document.getElementById("logonName").value="";
	                    document.getElementById("logonName").focus();
	                    return false;  
	                }else{  
	                   
	                    return true;  
	                }  
	            }  
	        }  
	    }  
	    xhr.open("post","system/elecUserAction_logonNameCheck.do",true);  
	
	    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");  
	    xhr.send("logonName="+logonName);  
	   
	}

我的设置是假设从数据库返回的值是1的话,就说明这个用户登录名已经被注册了,就弹出一个alert提示用户换一个名字,并且清空输入框的内容!

当然你也可以可以做你喜欢的提示操作,毕竟alert用户友好上面还是由欠缺的!

java action 代码:

	public String logonNameCheck(){

         String logonName=request.getParameter("logonName");   
         String checkRes = elecUserService.checkLogonName(logonName);
         response.setContentType("text/html;charset=utf-8");   
         PrintWriter out=null;
		try {
			out = response.getWriter();
		} catch (IOException e) {
		
			e.printStackTrace();
		}    
         out.print(checkRes);    
         out.flush();    
         out.close();    
		return null;
	}

这里我只贴出了处理这个登录名验证的代码,其他的没有贴出!我的action实现了ServletRequestAware,ServletResponseAware这两个类 所以可以直接使用

response和request 当然你必须要重写一下那两个方法,很简单的!

这边不需要返回任何字符串,因为我还要停留在当前页面,所以返回的是null,

struts那边也没有什么需要配置的,因为我使用的是动态方法通配符调用,只需要配置好action就好了!

就像这样

	<action name="elecUserAction_*" class="elecUserAction" method="{1}">
			
		</action>
因为我还使用了spring,所以class这里我只写spring容器内部的beans的名字就可以 ,不用写全类名

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值