• 20151217--Ajax的一点补充


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Ajax</title>
    
    <script language="javascript">
    //<script language="javascript" type="application/javascript">  // 如果上方的代码不能够完整实现就使用这个
    
    //IE浏览器实例化方式
    //var h = new ActiveXObject("Msxml2.XMLHTTP");
    
    //var p = new ActiveXObject("Microsoft.XMLHTTP");
    
    
    //非IE浏览器
    //var f = new XMLHttpRequest();
    
    //alert(p.getAllResponseHeaders());
    
    var hx = false;
    //定义函数
    function test(user_id)
    {
    //所有浏览器通用实例化代码
        if(window.XMLHttpRequest)        //非IE     IE7版本及以上 都支持非ie形式
        {
            hx = new XMLHttpRequest();    //如果是非IE浏览器 那么就会实例化
    //        alert("qqq");                //如果是实例化成功上方的,那么就会输出这句话
        }
        else if(window.ActiveXObject)    //IE
        {
            try{
                hx = new ActiveXObject("Msxml2.XMLHTTP");    //实例化
    //            alert("qqq2");                                //如果实例化成功上方的 那么就会输出这句话
                }            
            catch(e)
            {
                alert(e);
                    try                                                
                    {
                        hx = new ActiveXObject("Microsoft.XMLHTTP");    //实例化
    //                    alert("qqq3");                                    //如果实例化成功上方的 那么就会输出这句话
                    }
                    catch(e)
                    {
                        alert(e);
                    }
            }
    }
    
    //测试创建XMLHttpRequest是否成功
    if(!hx)
        {
            alert("创建XMLHttpRequest失败");
        }
    else
        {
            alert("创建XMLHttpRequest成功");
        }
    
    
        
           //异步请求的请求类型有两种方式 一种是 get 另一种是 post 两种方法都有各自的方式
     
     
        //get方式
        
        
        alert(new Date().getTime());
        // 1  设置异步请求的url等信息
        hx.open("GET","ajaxtest?userid=" + user_id + "&nocache = " + new Date().getTime() , true);    //("请求类型 GET/POST",URL,是否异步 true/false)
        // 2  设置回调函数  事件处理器
        hx.onreadystatechange = function()        //匿名函数        
        {
            getResult("1");
        }
    //    hx.onreadystatechange = getResult;     //将回调函数的函数名作为一个事件处理器给 hx.onreadystatechange    
        //调用请求的发送
        hx.send(null);        //在需要请求传送参数时设置异步请求时用  post  方式
        
    }    
        
        //回调函数
        function getResult(type)
    //    function getResult()    
        {
            //
            //alert("readyState = "+hx.readyState);
            if(hx.readyState == 4)        //判断是否完成
                {
                    if(hx.status == 200)        //判断服务器是否完成,正常
                    {
    //                    alert("回调信息 = " + hx.responseText); //返回的值
                        alert(hx.responseText);
                        
                        alert(type);
                        
    //                    alert("Headers = " + hx.getAllResponseHeaders());         //获取返回函数的全部头信息
                    
    //                    alert("Server = " + hx.getResponseHeader("Server"));    //获取部分头信息--回调信息
                    }
                else
                    {
                        alert("错误状态码 = " + hx.status + "状态文本信息 = " + hx.statusText);
                    }
                }
        }
        
        
                
    
        
    /*    
        
        //post方式
        
        // 1  设置异步请求的url等信息
        hx.open("POST","ajaxtest",true);    //("请求类型 GET/POST",URL,是否异步 true/false)
        // 2  设置回调函数  事件处理器
        
        hx.onreadystatechange = function()        //匿名函数        
        {
            getResult("1");
        }
        
    //    hx.onreadystatechange = getResult;     //将回调函数的函数名作为一个事件处理器给 hx.onreadystatechange    
        
        //调用请求的发送
        //在需要请求传送参数时设置异步请求时用  post  方式
        hx.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        //post方式 数据传输    get方式可以直接放置于URL中
        hx.send("userid=" + user_id);
        
    }    
        //回调函数
        function getResult(type)
        {
            //
            //alert("readyState = "+hx.readyState);
            if(hx.readyState == 4)        //判断是否完成
                {
                    if(hx.status == 200)        //判断服务器是否完成,正常
                        {
    //                        alert("回调信息 = " + hx.responseText); //返回的值
                            alert(hx.responseText);
    //                        alert("Headers = " + hx.getAllResponseHeaders());         //获取返回函数的全部头信息
                            
    //                        alert("Server = " + hx.getResponseHeader("Server"));    //获取部分头信息--回调信息
                        }
                    else
                        {
                            alert("错误状态码 = " + hx.status + "状态文本信息 = " + hx.statusText);
                        }
                }
        }
    */        
        //alert("Server = " + hx.getAllResponseHeaders("Server"));
            
    </script>
    
    </head>
    
    <body>
    
    用户代码:<input type="text" onchange="test(this.value);" />
    
    </body>
    </html>
    Ajax
    package com.hanqi;
    
    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 ajaxtest
     */
    @WebServlet("/ajaxtest")
    public class ajaxtest extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
        /**
         * Default constructor. 
         */
        public ajaxtest() {
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            request.setCharacterEncoding("UTF-8");
            
            response.setCharacterEncoding("UTF-8");
            
            response.setContentType("text/html; charset=utf-8");
            
            String userid = request.getParameter("userid");
            
            if(userid != null && userid.trim().length() > 0)
            {
                //查找用户信息
                if(userid.equals("abc"))
                {
                    response.getWriter().append("用户代码已存在!");
                    
                }
                else
                {
                    response.getWriter().append("用户代码不存在,可以使用!");
                }
                
            }
            else
            {
                response.getWriter().append("请正确填写!");
            }
            
            response.getWriter().append("test ajax");
            
            response.getWriter().append("Served at: ").append(request.getContextPath());
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
    AjaxTest

  • 相关阅读:
    bzoj4196: [Noi2015]软件包管理器
    bzoj3083: 遥远的国度
    bzoj4034: [HAOI2015]T2
    2.EXIT_KEY
    AD如何1比1打印
    编程时注意,
    同步事件、异步事件、轮询
    事件位
    挂起进程相关API
    PROCESS_EVENT_POLL事件
  • 原文地址:https://www.cnblogs.com/name-hanlin/p/5055371.html
Copyright © 2020-2023  润新知