利用AJAX实现简单的用户登录程序(处理服务端返回的文本数据)

来源:互联网 发布:下载学英语软件 编辑:程序博客网 时间:2024/04/27 22:41

AJAX开发的基本流程

1.创建XMLHttpRequest对象

2.注册回调函数             xmlHttpRequest.onreadystatechange = processResponse

3.与服务端建立连接       xmlHttpRequest.open("GET",url,true);

4.发送请求                   xmlHttpRequest.send(null);

5.处理服务端返回的结果

 

演示代码:

login.jsp

view plain
  1. <%@ page contentType="text/html;charset=UTF-8" language="java"%>  
  2. <%  
  3.     String path = request.getContextPath();  
  4.     String basePath = request.getScheme() + "://"  
  5.             + request.getServerName() + ":" + request.getServerPort()  
  6.             + path + "/";  
  7. %>  
  8. <html>  
  9.     <head>  
  10.         <title>ajax实现用户注册</title>  
  11.         <link href="<%=path%>/css/main.css" rel="stylesheet" type="text/css">  
  12.         <script type="text/javascript" src="<%=path%>/js/login.js"></script>  
  13.     </head>  
  14.     <body vLink="#006666" link="#003366" bgColor="#E0F0F8" onload="init();">  
  15.         <img height="33" src="enter.gif" mce_src="enter.gif" width="148">  
  16.         <form action="login" method="post">  
  17.             username:<input size="15" id="username" name="username" style="width:20%;height:5%"/></br>  
  18.             password:<input type="password" id="password" name="password" size="15" style="width:20%;height:5%"/></br>  
  19.             <input type="button" id="btn1" class="button" value="login" onclick="check('<%=basePath%>');"/>   
  20.             <input type="button" id="btn2" class="button" value="reset" onclick="clear();"/></br>             
  21.             <div id="div" class="div">  
  22.             </div>  
  23.         </form>  
  24.     </body>  
  25. </html>  

 

login.js

view plain
  1. // 定义xmlHttpRequest对象  
  2. var xmlHttpRequest;  
  3. // 创建ajax请求对象  
  4. function createXMLHttpRequest(){  
  5.     var flag = false;  
  6.     if(window.XMLHttpRequest){  
  7.         xmlHttpRequest = new XMLHttpRequest();  
  8.     }else if(window.ActiveXObject){  
  9.         var activexs = ["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];  
  10.         for(var i = 0;i < activexs.length;i++){  
  11.             try{  
  12.                 xmlHttpRequest = new ActiveXObject(activexs[i]);  
  13.                 break;  
  14.             }catch(e){  
  15.                 alert(e);  
  16.             }  
  17.         }  
  18.     }else{  
  19.     }  
  20.     if(xmlHttpRequest){  
  21.         flag = true;  
  22.     }else{  
  23.         alert("创建ajax对象失败");  
  24.         flag = false;  
  25.     }  
  26.     return flag;  
  27. }  
  28. // 响应函数  
  29. function processResponse(){  
  30.     if(xmlHttpRequest.readyState==4){  
  31.         if(xmlHttpRequest.status == 200){  
  32.             var result = xmlHttpRequest.responseText;  
  33.             document.getElementById("div").innerHTML = result;  
  34.         }  
  35.     }  
  36. }  
  37. // 初始化  
  38. function init(){  
  39.     // 设置焦点  
  40.     document.getElementById("username").focus();  
  41. }  
  42. // 表单登录  
  43. function sendRequest(url){  
  44.     // 1.创建XMLHttpRequest对象  
  45.     var flag = createXMLHttpRequest();  
  46.     if(flag){  
  47.           // 2.注册响应函数  
  48.           xmlHttpRequest.onreadystatechange = processResponse;  
  49.           // 3.建立连接  
  50.           xmlHttpRequest.open("GET",url,true);  
  51.           // 4.发送请求  
  52.           xmlHttpRequest.send(null);  
  53.     }else{  
  54.         alert("创建ajax对象失败");  
  55.     }  
  56. }  
  57. // 校验  
  58. function check(basePath){  
  59.     var username = document.getElementById("username").value;  
  60.     var password = document.getElementById("password").value;  
  61.     if(username == ""){  
  62.         alert("用户名不能为空");  
  63.         document.getElementById("username").focus();  
  64.         return;  
  65.     }  
  66.     if(password == ""){  
  67.         alert("密码不能为空");  
  68.         document.getElementById("password").focus();  
  69.         return;  
  70.     }  
  71.     // 校验通过,和后台进行异步交互  
  72.     var url = basePath + "login?username=" + username + "&password=" + password;  
  73.     sendRequest(url);  
  74. }  
  75. // 重置  
  76. function clear(){  
  77.     // 清空表单项  
  78.     document.getElementById("username").value = "";  
  79.     document.getElementById("password").value = "";  
  80.     // 设置焦点  
  81.     document.getElementById("username").focus();  
  82. }  

 

main.css

view plain
  1. body{  
  2.     font-size10pt;  
  3.     font-weight:bold;  
  4.             font-family"宋体";  
  5.     color:  #2C2C52;  
  6.     border1px solid #CCCCCC;  
  7. }  
  8. .button{  
  9.     font-size10pt;font-weight:bold;  
  10.     font-family"宋体";  
  11.     color#FFFFFF;  
  12.     border1px solid #CCCCCC;  
  13.     background-color:#706A9B ;  
  14.     cursor:hand;  
  15. }  
  16. .div{  
  17.     colorred;  
  18. }  

 

LoginServlet.java

view plain
  1. package com.wj.base.ajax.servlet;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.PrintWriter;  
  5.   
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.http.HttpServlet;  
  8. import javax.servlet.http.HttpServletRequest;  
  9. import javax.servlet.http.HttpServletResponse;  
  10. /** 
  11.  * 利用ajax实现用户登录 
  12.  * @author 健 
  13.  */  
  14. public class LoginServlet extends HttpServlet {  
  15.       
  16.     /** 
  17.      * 序列化 
  18.      */  
  19.     private static final long serialVersionUID = 1L;  
  20.     /** 
  21.      * 接收get请求类型,判断用户是否登陆成功 
  22.      *  
  23.      * @param request 请求 
  24.      * @param response 响应 
  25.      * @throws ServletException Servlet容器异常 
  26.      * @throws IOException IO异常 
  27.      */  
  28.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  29.             throws ServletException, IOException {  
  30.         doPost(request, response);  
  31.     }  
  32.   
  33.     /** 
  34.      * 接收post请求类型,判断用户是否登陆成功 
  35.      *  
  36.      * @param request 请求 
  37.      * @param response 响应 
  38.      * @throws ServletException Servlet容器异常 
  39.      * @throws IOException IO异常 
  40.      */  
  41.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  42.             throws ServletException, IOException {  
  43.   
  44.         response.setContentType("text/html;charset=UTF-8");  
  45.         PrintWriter out = response.getWriter();  
  46.         String username = request.getParameter("username");  
  47.         String password = request.getParameter("password");  
  48.         if("wangjian".equals(username)&&"111111".equals(password)){  
  49.             out.println("登陆成功");  
  50.         }else{  
  51.             out.println("登陆失败,用户名或密码错误");  
  52.         }  
  53.     }  
  54.   
  55. }  

 

 

web.xml

view plain
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  6.     <servlet>  
  7.         <servlet-name>LoginServlet</servlet-name>  
  8.         <servlet-class>  
  9.             com.wj.base.ajax.servlet.LoginServlet  
  10.         </servlet-class>  
  11.     </servlet>  
  12.     <servlet-mapping>  
  13.         <servlet-name>LoginServlet</servlet-name>  
  14.         <url-pattern>/login</url-pattern>  
  15.     </servlet-mapping>  
  16.     <welcome-file-list>  
  17.         <welcome-file>login.jsp</welcome-file>  
  18.     </welcome-file-list>  
  19. </web-app>