您的位置:首页 > 编程语言 > Java开发

struts2中使用ajax验证邮箱(用户名)是否被注册

2017-12-18 22:15 681 查看
action类:

[java] view
plain copy

package com.grace.myblog.view.action;  

  

import java.io.PrintWriter;  

  

import javax.servlet.http.HttpServletRequest;  

import javax.servlet.http.HttpServletResponse;  

  

import org.apache.struts2.ServletActionContext;  

import org.springframework.stereotype.Controller;  

  

import com.grace.myblog.domain.User;  

  

@Controller  

public class EmailCheckAction{  

  

    /** 

     *  

     */  

    private static final long serialVersionUID = 1L;  

  

    public String execute() throws Exception{  

        try{  

            String responseText="";  

            HttpServletRequest request=ServletActionContext.getRequest();  

            String email=request.getParameter("email");   

            System.out.println("---"+email);  

            User user = registerService.findByEmail(email);//通过email查询数据库,判断邮箱是否已经被注册  

            if(user==null){    

                responseText="2";    

            }else{  

                responseText="1";  

            }  

            HttpServletResponse response=ServletActionContext.getResponse();      

            response.setContentType("text/html;charset=utf-8");   

            PrintWriter out=response.getWriter();    

            out.print(responseText);    

            out.flush();    

            out.close();    

        }catch(Exception e){  

            e.printStackTrace();  

        }  

        return null;  

    }  

}  

js中的代码

[javascript] view
plain copy

function checkUserMail(){  

      

    /* email检查ajax */  

    var email = document.getElementById("email").value;  

    var xhr = ajaxFunction();  

    xhr.onreadystatechange = function(){  

        if(xhr.readyState==4){  

            if(xhr.status==200){  

                var data = xhr.responseText;        //获取文本  

                if(data=="1"){  

                    document.getElementById("emailcheck").innerHTML = "<font color='red'>该邮箱已经被注册</font>";  

                    return false;  

                }else{  

                    document.getElementById("emailcheck").innerHTML = "恭喜,该邮箱还未被注册";  

                    return true;  

                }  

            }  

        }  

    }  

    xhr.open("get","emailCheck.action?email="+email,true);  

    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");  

    xhr.send();  

  

}  

[javascript] view
plain copy

function ajaxFunction(){  

   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;  

 }  

sturts.xml中的配置

[html] view
plain copy

<!-- email检查ajax  -->  

<action name="emailCheck" class="emailCheckAction" >/*使用注解方式,因此class默认为类名首字母小写*/  

</action>  

jsp页面只需要在想显示提示信息的地方加上下面这行代码即可

[html] view
plain copy

<div  id="emailcheck" ></div>  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: