zoukankan      html  css  js  c++  java
  • ajax

    前台页面:
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://"
                + request.getServerName() + ":" + request.getServerPort()
                + path + "/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">
    <title>My JSP 'ajax.jsp' starting page</title>
    <script type="text/javascript">
        function testAjax() {
            //创建AJAX对象
            var request = null;
            //根据浏览器的不同使用不同的创建方式
            if (window.XMLHttpRequest) {
                request = new XMLHttpRequest();
            } else if (window.ActiveXObject) {
                request = new ActiveXObject("Msxml2.XMLHTTP");
            } else {
                console.log("找不到指定的创建方式[" + window.navigator.userAgent + "]");
            }
            //初始化对象
            //request.open(method, url, async, username, password)
            request.open("post", "hi.action", true);
            //接受响应数据
            request.onreadystatechange = function() {
                //0-4
                if (request.readyState == 4) {
                    //监听状态码
                    if (request.status == 200) {
                        alert(request.responseText);
                    }
                }
            }
            //发送请求
            request.send(null);
     
            //同步异步
            //alert("证明是同步还是异步");
        };
    </script>
    </head>
    <body>
        <h1>AJAX简单入门<%=Math.random()%></h1>
        <input type="button" value="testAjax" onclick="testAjax();">
        <hr />
        <h3>XMLHttpRequest就是我们说的AJAX对象</h3>
        <h3>AJAX的属性</h3>
        <ol>
            <li>readyState:ajax的状态码 <pre>
                    0 - (未初始化)还没有调用send()方法 
                    1 - (载入)已调用send()方法,正在发送请求 
                    2 - (载入完成)send()方法执行完成,已经接收到全部响应内容 
                    3 - (交互)正在解析响应内容 
                    4 - (完成)响应内容解析完成,可以在客户端调用了 
                </pre>
            </li>
            <li>status:http协议的状态码</li>
            <li>responseText:服务器返回的文本内容</li>
            <li>responseXML:服务器返回的XML格式的数据</li>
        </ol>
        <h3>AJAX的方法</h3>
        <ol>
            <li>open:初始化
                <ol>
                    <li>初始化ajax对象(请求方式,资源路径,同步或者异步)</li>
                    <li>默认为异步请求(true),如果设置为false则为同步</li>
                </ol>
            </li>
            <li>send:发送请求</li>
        </ol>
        <h3>AJAX的事件</h3>
        <ol>
            <li>onreadystatechange:
                <ol>
                    <li>当状态码改变的时候触发这个事件</li>
                </ol>
            </li>
        </ol>
    </body>
    </html>
     
    后台:
    package com.zhaoran.servlet;
     
    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;
    @WebServlet("/hi.action")
    public class HiServlet extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setCharacterEncoding("UTF-8");
            System.out.println(req.getHeader("User-Agent")+Math.random());
            System.out.println(req.getAttribute("uname"));
            System.out.println(req.getAttribute("realname"));
            resp.getWriter().print("ajax-back"+Math.random());
        }
    }
     
     
     
  • 相关阅读:
    SpringMVC 2.5.6 +Hibernate 3.2.0
    batch normalization在测试时的问题
    python loss layer: does not need backward computation?
    deconvolution layer parameter setting
    dlmread matlab
    概率图模型课本笔记(五)
    概率图模型课本笔记(四)
    概率图模型课本笔记(三)
    概率图模型课本笔记(二)
    概率图模型课本笔记(一)
  • 原文地址:https://www.cnblogs.com/zhaoran8775/p/5521491.html
Copyright © 2011-2022 走看看