【JavaWeb】Ajax基础

Ajax介绍

Asynchronous JavaScript And XML(异步的JavaScript和XML);

Ajax可以在不刷新页面的前提下,进行页面局部更新;

Ajax不是新的技术,Ajax并不是W3C的标准;

Ajax的使用流程

  • 创建XmlHttpRequest对象
  • 发送Ajax请求
  • 处理服务器响应

处理服务器响应

  • xmlhttp.onreadystatechange()事件用于监听AJAX的执行过程
  • xmlhttp.readyState属性说明XMLHttpRequest当前状态
  • xmlhttp.status属性服务器响应状态码,200:成功、404:未找到...
readyState值 说明
readyState = 0 请求未初始化
readyState = 1 服务器连接已建立
readyState = 2 请求已被接收
readyState = 3 请求正在处理
readyState = 4 响应文本已被接收

实例代码

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <input id="btnLoad" type="button" value="加载">
    <div id="divContent"></div>
    <script>
        document.getElementById("btnLoad").onclick = function(){
            //1.创建XmlHttpRequest对象
            var xmlhttp;
            if(window.XMLHttpRequest){
                xmlhttp = new XMLHttpRequest(); //新版本浏览器
            }else{
                xmlhttp = new ActiveXobject("Microsoft.XMLHTTP"); //老版本浏览器
            }
            //2.发送Ajax请求
            xmlhttp.open("GET", "/ajax/content", true);//创建请求,true为异步执行
            xmlhttp.send(); //发送请求
            console.log(xmlhttp);
            //3.处理服务器响应
            xmlhttp.onreadystatechange = function(){
                //响应已被接收并且服务器处理成功
                if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                    var responseText = xmlhttp.responseText;
                    document.getElementById("divContent").innerHTML = responseText;
                }
            }
        }
    </script>
</body>
</html>

ContentServlet.java

package demo;

import java.io.IOException;
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 ContentServlet
 */
@WebServlet("/content")
public class ContentServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ContentServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().println("<b>I'm server content</b>");
    }

}

网页显示

image
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容