• 使用js实现ajax的get请求步骤


    (以下内容非原创,视频整合得来的)

    1.创建XMLHttpRequest对象

    2.浏览器与服务器建立连接

    3.浏览器向服务器发送请求

    4.服务器向浏览器响应请求

    下面给出一个实例

     1.创建一个testget.jsp的文件,放在web1_testget estget.jsp

    <%@ page language="java"  pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
         <script type="text/javascript" src="./test.js"></script>
      </head>
      <body>
         <form action="" enctype="application/x-www-form-urlencoded">
              <input type="button" name="ok" id="ok" value="测试服务器连接">
          </form>
      </body>
    </html>

    2.创建一个js文件

    //当页面加载完毕之后,执行以下代码
    window.onload = function () {
        document.getElementById("ok").onclick = function () {
            /*
             * 1    创建XMLHttpRequest对象
             */
            var xhr = ajaxFunction();
    
            /*
             * 4    服务器向浏览器响应请求
             *
             * readyState 属性表示Ajax请求的当前状态。它的值用数字代表。
             0 代表未初始化。 还没有调用 open 方法
             1 代表正在加载。 open 方法已被调用,但 send 方法还没有被调用
             2 代表已加载完毕。send 已被调用。请求已经开始
             3 代表交互中。服务器正在发送响应
             4 代表完成。响应发送完毕
    
             常用状态码及其含义:
             404 没找到页面(not found)
             403 禁止访问(forbidden)
             500 内部服务器出错(internal service error)
             200 一切正常(ok)
             304 没有被修改(not modified)(服务器返回304状态,表示源文件没有被修改 )
             */
            xhr.onreadystatechange = function(){
                alert(xhr.readyState);
                //alert(xhr.status);
                if(xhr.readyState==4){
                    if(xhr.status==200||xhr.status==304){
                        var data = xhr.responseText;
                        alert(data);
                    }
                }
            }
    
            /*
             * 2    浏览器与服务器建立连接
             *
             * xhr.open(method, url, asynch);
             *         * 与服务器建立连接使用
             *         * method:请求类型,类似 “GET”或”POST”的字符串。
             *         * url:路径字符串,指向你所请求的服务器上的那个文件。请求路径
             *         * asynch:表示请求是否要异步传输,默认值为true(异步)。
             */
            xhr.open("GET","/testServlet?c=18",true);
    
            /*
             * 3    浏览器向服务器发送请求
             *
             *     send()方法:
             *         * 如果浏览器请求的类型为GET类型时,通过send()方法发送请求数据,服务器接收不到
             */
            xhr.send("a=6&b=9");        //xhr.send(null);
        }
    }
    
    function ajaxFunction(){
        var xmlHttp;
        try{ // Firefox, Opera 8.0+, Safari
            xmlHttp=new XMLHttpRequest();
        }
        catch (e){
            try{// Internet Explorer
                xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e){
                try{
                    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e){}
            }
        }
    
        return xmlHttp;
    }

    3.创建一个TestServlet来处理这个jsp请求

    package com.servlet;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    
    /**
     * Created by huangyichun on 2016/12/7.
     */
    @WebServlet(name = "testServlet",urlPatterns = "/testServlet")
    public class TestServlet extends HttpServlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
        }
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            System.out.println("connection...");
            System.out.println("a=" + request.getParameter("a"));
            System.out.println("c=" + request.getParameter("c"));
    
            PrintWriter out = response.getWriter();
    
            out.println("get connection server success");
        }
    }

    运行结果为:

    控制台打印:

    connection...
    a=null
    c=18

    浏览器弹出窗口:

  • 相关阅读:
    Kubernetes 无法删除pod实例的排查过程
    kubeadm 生成的token过期后,集群增加节点
    linux 常规操作EOF写法梳理
    linux下EOF写法梳理
    容器云之弹性伸缩
    QEMU,KVM及QEMU-KVM介绍
    听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构
    代码内存泄露检测(1) MLeaksFinder (Wechat开源) + FBRetainCycleDetector (FaceBook开源)
    Xcode 创建使用多个 target (1)
    iOS 多线程的简单理解(4) 线程锁的简单使用
  • 原文地址:https://www.cnblogs.com/huangyichun/p/6142263.html
Copyright © 2020-2023  润新知