zoukankan      html  css  js  c++  java
  • Ajax-javascript

     一、Web 2.0的特点

      提到Ajax不得不提到WEB2.0

      1、用户贡献内容

      2、内容聚合RSS

      3、更丰富的“用户体验”

    二、Ajax的作用

      无刷新:不刷新整个页面,只刷新局部

      无刷新的好处

        只更新部分页面,有效利用带宽

        提供连续的用户体验

        提供类似C/S的交互效果,操作更方

        

        

    三、传统Web与Ajax的差异

       

    四、Ajax简介

      1、Ajax:异步刷新技术

      

     2、Ajax工作流程

      

      3、Ajax技术的核心-XMLHttpRequest提供异步发送请求的能力

        3.1常用方法

        

        3.2常用属性   

        readystateXMLHttpRequest的状态信息

        

        onreadystatechange:指定回调函数

        status:HTTP的状态码

        

        statusText :返回当前请求的响应状态

        responseText:获得响应的文本内容

        responseXML:获得响应的XML文档对象

     五、功能实现

      index.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>注册</title>
    </head>
    <script type="text/javascript">
        var xmlHttpRequest;
        function validate(){
             var uname = document.getElementById("uname").value;
            if(uname==null || uname==""){
                document.getElementById("unameDiv").innerText = "用户名不能为空!";
            }else{
                //1.创建XMLHttpRequest对象
                xmlHttpRequest = createXmlHttpRequest();
                //2.设置回调函数
                xmlHttpRequest.onreadystatechange = callBack;
                //3.初始化XMLHttpRequest组件
                var url = "CheckNameServlet";
                xmlHttpRequest.open("post",url,true);//get方式
                xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                //4.发送请求
                var data="uname="+uname;//需要发送的数据信息,name为用户名输入框获取的值
                xmlHttpRequest.send(data);
            }
        }
        
        /*
         *创建XMLHttpRequest对象
         */
        function createXmlHttpRequest(){
            if(window.XMLHttpRequest){
                return new XMLHttpRequest();
            }else{//返回值为false时说明是老版本IE浏览器(IE5和IE6)
                return new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        
        //Ajax 回调函数
        function callBack(){
            if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){
                var data = xmlHttpRequest.responseText;
                if(data == "true"){
                    document.getElementById("unameDiv").innerText = "用户名已被使用!";
                }else{
                    document.getElementById("unameDiv").innerText = "用户名可以使用!";
                } 
            }
        }
    </script>
    <body>
        <form action="" id="form1" >
            <table>
                <tr>
                    <td>用 户 名:</td>
                    <td>
                        <input  type="text" name="uname" id="uname" onblur="validate();" />&nbsp;<font color="#c00fff">*</font>
                    </td>
                    <td>
                        <div id="unameDiv" style="display: inline"></div>
                    </td>
                </tr>
            </table>
        </form>
    </body>
    </html>

      CheckNameServlet

    package com.qj.servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    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 CheckNameServlet
     */
    @WebServlet("/CheckNameServlet")
    public class CheckNameServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public CheckNameServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            String uname = request.getParameter("uname");
            System.out.println(uname);
            PrintWriter out = response.getWriter();
            if("admin".equals(uname)){
                out.print("true");
            }else{
                out.print("false");
            }
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }
  • 相关阅读:
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    自考感悟,话谈备忘录模式
    [每日一题] OCP1z0-047 :2013-07-26 alter table set unused之后各种情况处理
    Java实现 蓝桥杯 算法提高 p1001
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 因式分解
    Java实现 蓝桥杯 算法提高 因式分解
  • 原文地址:https://www.cnblogs.com/dwxt/p/7886134.html
Copyright © 2011-2022 走看看