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);
        }
    
    }
  • 相关阅读:
    Oracle工具的探索之旅(一)
    对ODB管理工具(EM,SQL Plus,Net Manager,Net Configuration Assistant,Administration Assistant for Windows,Database Configuration Assistant......)的简单认识
    偶然发现的VS2010的调试Watch查看也有F11的调试功能
    安装和卸载Oracle 10g数据库
    对Oracle的初步了解
    Oracle工具的探索之旅(二)
    对Oracle的初步认识
    [HDL]4/8/16/32/64位乘法器的设计(转)
    用ASP.NET WebForm的FileUpload控件上传文件
    C#图片和byte[]的互相转换
  • 原文地址:https://www.cnblogs.com/dwxt/p/7886134.html
Copyright © 2011-2022 走看看