Ajax學(xué)習(xí)

Ajax(數(shù)據(jù)的異步傳輸):老技術(shù)新應(yīng)用,JavaScript的翻版;通俗的講是無刷新瀏覽;

1、工作流程

  • 獲取請(qǐng)求,創(chuàng)建對(duì)象
  • 建立要連接的url
  • 打開到服務(wù)器的連接
  • 設(shè)置回調(diào)函數(shù)
  • 發(fā)送請(qǐng)求

2、簡(jiǎn)單實(shí)例

jsp頁(yè)面代碼:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here11</title>
</head>


<script type="text/javascript">

var XMLHttpReq,pid; 
//創(chuàng)建XMLHttpRequest對(duì)象
function createXMLHttpRequest()
{
    if(window.XMLHttpRequest)
    { //Mozilla瀏覽器
     XMLHttpReq = new XMLHttpRequest();
    }else if(window.ActiveXObject){                           
      //IE瀏覽器
       try
       {
        XMLHttpReq=newActiveXObject("Msxm12.XMLHTTP" );
       }catch(e)
       {
           try
           {
        XMLHttpReq=newActiveXObject("Microsoft.XMLHTTP" );
           }catch(e) {}
       }
   }
}  
//發(fā)送Ajax請(qǐng)求
function sendAjaxRequest(url)
{
  createXMLHttpRequest();       //創(chuàng)建XMLHttpRequest對(duì)象
  XMLHttpReq.open("post",url,true);
  XMLHttpReq.onreadystatechange = processResponse;//指定響應(yīng)函數(shù)
  XMLHttpReq.send(null);
}

//回調(diào)函數(shù)processResponse
//取servlet構(gòu)造出的XML文件的值
function processResponse()
{
   if(XMLHttpReq.readyState == 4)
   {
     if(XMLHttpReq.status == 200)
     {
        var res=XMLHttpReq.responseXML.getElementsByTagName("res123")[0].firstChild.data;
        var id=XMLHttpReq.responseXML.getElementsByTagName("id")[0].firstChild.data;
        var name=XMLHttpReq.responseXML.getElementsByTagName("name")[0].firstChild.data;
        var age=XMLHttpReq.responseXML.getElementsByTagName("age")[0].firstChild.data;
        msg.innerHTML =res+"<br>id="+id+"<br>name="+name+"<br>age="+age;
     }
   }

}


function a(){
    var name=document.getElementById("userName").value;
    var url="MyServlet?name="+name;
    sendAjaxRequest(url);

}
</script>
<body>
<h1 align="center">Ajax應(yīng)用</h1>
賬號(hào):<input type="text" name="userName" id="userName" onblur="a()"/><br><br>
密碼:<input type="password" name="pwd"/><br><br>
<input type="button" name="sub" value="提交"/>
<hr>
<div id="msg">提示信息</div>
<form action="" name="form1">
</form>
</body>
</html>

servlet代碼如下:

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MyServlet
 */
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("....MyServlet....doGet......");
        this.doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("....MyServlet....doPost......");
        String userName=request.getParameter("name");
        
        response.setContentType("text/xml;charset=UTF-8");      
        PrintWriter out = response.getWriter();
        
        out.println("<response123>");
        out.println("<id>100</id>");
        out.println("<name>張三</name>");
        out.println("<age>18</age>");
        out.println("<res123>"+userName+",你好abc123</res123>");
        out.println("</response123>");
        
        out.close();
        System.out.println("over");
        
        System.out.println("userName="+userName);
    }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容