ajax在用户登录时异步验证用户合法性

AJAX(Asynchronous JavaScript and XML) 是多种技术的综合应用, 包括XHTML、Javascript和XML等。
AJAX使用XHTML和CSS标准化呈现,使用XML和JSON进行数据交换与处理,使用JavaScript绑定和处理所有数据。
在AJAX提出之前,业界对于上述技术都只是单独的使用,没有综合应用。


“AJAX”这个名字是在2005年2月,Jesse James Garrett在他的文章Ajax : A New Approach to Web Application中首先提出的。
而AJAX 这项技术,是 Google 在Google Labs发布Google Maps和Google Suggest后真正为人所认识。
现在大量的基于Web系统都采用AJAX技术,来提高web应用系统的用户体验。

接下里讲一下如何利用ajax进行一些简单的异步验证用户的合法性

编写异步的ajax时候首先需要明白编写的步骤,以及ajax对象中都有哪些对象和数据成员,这杨有利于后面对代码的理解
如果对ajax的成员不是太了解的话,建议先复习一下ajax的内容,下面是ppt的下载地址,,当然这是我的老师的,嘿嘿,没有经过老师同意,但是私自放上希望能对大家有所帮助

链接地址:http://pan.baidu.com/s/1geLDK1H

好接下来进入正题,如何简单的实现异步的页面交互

首先编写util.js工具类用于得到ajax对象,这个函数我们不用去了解他的具体实现,我们只需要复制粘贴就好,因为这个是w3c标准提供的
1:获取ajax对象的函数
function getXHR()
{
    var xmlHttp;

     try
        {
       // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
        }
     catch (e)
        {

      // Internet Explorer
       try
          {
          xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
          }
       catch (e)
          {

          try
             {
             xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
             }
          catch (e)
             {
             alert("您的浏览器不支持AJAX!");
             return false;
             }
          }
        }

     return xmlHttp;

}

2:边界登录页面,并且在登录页面生成表单,这个过程很简单,表单如下
 <body>

  <form action="/HomeWork_2_3/Controller?type=login" method="post">
   <table align="center">
     <tr><td>管理员:</td><td><input type="text" name="user" id="id1"><span id="msg"></span></td></tr>
     <tr><td>密码:</td><td><input type="password" name="password" id="id2" ></td></tr>
     <tr><td><input type="submit" value="登录"></td><td><input type="reset" value="重置"></td></tr>
   </table>
  </form>   
  </body>
3:在表单页面引入util.js工具类并且编写ajax代码

 <script type="text/javascript" src="${pageContext.request.contextPath}/util.js"></script>

  <script type="text/javascript">
        window.οnlοad=function(){
            document.getElementById("id1").οnblur=function(){
                if(this.value==""){
                    alert("请输入用户名");
                    this.focus();//恢复焦点
                    return;
                }
                //发出异步请求
                var xhr = getXHR();
                xhr.onreadystatechange=function(){
                    if(xhr.readyState==4){
                        if(xhr.status==200){

                            document.getElementById("msg").innerHTML=xhr.responseText;

                        }
                    }
                }
                /*
                xhr.open("GET","${pageContext.request.contextPath}/servlet/ServletDemo2?username="+this.value+"&time="+new Date().getTime());
                xhr.send(null);
                */

                xhr.open("POST","${pageContext.request.contextPath}/AjaxServlet?time="+new Date().getTime());
                //设置请求消息头:告知客户端提交的正文的MIME类型
                xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xhr.send("user="+this.value);
            }
        }
    </script>

4:编写处理异步请求的servlet并且生成必要的相应返回给用户。注意这个过程是异步进行的

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



            String []account= {"admin","zhangfucheng","103"};
            String name = request.getParameter("user");
           boolean flag=false;
            for(String s:account)
            {
                if(s.equals(name))
                    {
                      flag=true;
                      break;
                    }
            }


            if(flag)
            {

                response.getWriter().write("<font color='green'>管理员合法</font>");
            }else
            {
                response.getWriter().write("<font color='red'>管理员不合法</font>");
            }


以上是编写一个异步的ajax表单页面处理的基本过程

因为上面的讲解可能过于草率,所以在这里呢我也将自己草率编写的工程代码分享出来,如果能对大家有帮助就最好不过了,工程代码不必要全部看懂,只要看核心部分就好,因为我也是刚刚学习javaEE所以,代码的逻辑可能会很混乱,但是只是看关键的代码的话还是可以的



链接地址:http://pan.baidu.com/s/1dFOFQpz  提取码:j51v

代码实现截图:这里写图片描述

这里写图片描述

发布了42 篇原创文章 · 获赞 24 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/zhang245754954/article/details/52717836
今日推荐