Ajax详解及其案例分析

2019-09-14 07:07:01王冬梅

2.3 步骤

步骤一: 新建ajax02.html页面

步骤二: 添加getText()方法,并补充超链接对该方法的调用

<html>
  <head>
    <title>ajax02.html</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript">
    
      function getXhr(){
        var xhr = null;
        if(window.XMLHttpRequest){
          xhr = new XMLHttpRequest();
        }else{
          xhr = new ActiveXObject("Microsoft.XMLHttp");
        }
        return xhr;    
      }
      
      function getText(){
        //1.获取Ajax对象
        var xhr = getXhr();   
        //2.设置回调函数  
        xhr.onreadystatechange=function(){        
          if(xhr.readyState==4 && xhr.status==200){
            var txt = xhr.responseText;
            alert(txt);
          }
        };
        //3.创建请求
        xhr.open("get","get_text.do",true); 
        //4.发送请求
        xhr.send(null);
      }  
    </script>
  </head>
  <body>
    <!-- 获取服务器端一小段文本 -->
    <a href="javascript:;" onclick="getText()">获取文本</a>
  </body>
</html>

步骤三: 编写ActionServlet类

package web;

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

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

public class ActionServlet extends HttpServlet {

  public void service(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    //获取请求资源路径
    String uri = request.getRequestURI();
    String path = uri.substring(
        uri.lastIndexOf("/"),
        uri.lastIndexOf("."));
    if(path.equals("/get_text")){//get请求
      out.println("get请求-服务器返回的数据");
    }
    out.close();
  }

}

步骤四: 部署、运行,查看结果

点击链接:

2.4 完整代码

ajax02.html页面代码:

<html>

 <head>

  <title>ajax02.html</title>  

  <meta http-equiv="Content-Type"

     content="text/html; charset=UTF-8">

  <script type="text/javascript">

    function getXhr(){

      var xhr = null;

      if(window.XMLHttpRequest){

        xhr = new XMLHttpRequest();

      }else{

        xhr = new ActiveXObject("Microsoft.XMLHttp");

      }

      return xhr;    

    }

    function getText(){

      //1.获取Ajax对象

      var xhr = getXhr();  

      //2.设置回调函数  

      xhr.onreadystatechange=function(){        

        if(xhr.readyState==4 && xhr.status==200){

          var txt = xhr.responseText;

          alert(txt);

        }

      };

//3.创建请求

      xhr.open("get","get_text.do",true); 

      //4.发送请求

      xhr.send(null);

    } 

  </script>

 </head>

 <body>

  <!-- 获取服务器端一小段文本 -->

  <a href="javascript:;" onclick="getText()">获取文本</a>

 </body>

</html>