• 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);
        }
    
    }
  • 相关阅读:
    4 Apr 18 软件开发目录 logging模块的使用 序列化(Json, Pickle) os模块
    3 Apr 18 内置函数 列表生成式与生成器表达式 模块的使用之import 模块的使用之from…import…
    2 Apr 18 三元表达式 函数递归 匿名函数 内置函数
    30 Mar 18 迭代器 生成器 面向过程的编程
    29 Mar 18 函数 有参、无参装饰器
    28 Mar 18 函数
    27 Mar 18 函数的参数
    26 Mar 18 函数介绍
    23 Mar 18 文件处理
    22 Mar 18 补充数据类型+字符编码+文件处理
  • 原文地址:https://www.cnblogs.com/dwxt/p/7886134.html
Copyright © 2020-2023  润新知