zoukankan      html  css  js  c++  java
  • AJAX最简单的原理以及应用

    Ajax是创建快速动态网页的技术,通过后台与服务器少量的数据交互,是网页实现异步更新。也就是在不整个刷新页面的情况下,可以更新网页中的局部区域。

    在原始web应用的模式中:

    浏览器       以 http的形式向服务器发送请求,然后服务器处理请求,然后以响应(HTML+CSS)数据返回给客户端;

    AJXA应用中:

    浏览器  以http发送的请求到达AJAX引擎,由Ajax向服务器进行请求发送数据,处理完成后,把数据继续返回给Ajax引擎,再以XML或者字符串数据,返回给浏览器;


    ajax.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        
        <title>My JSP 'ajax.jsp' starting page</title>
       
        <script type="text/javascript">
                    //声明一个空对象接受XMLHttpRequest
            var xmlHttpRequest = null;
            
            function ajaxSubmit()
            {//IE浏览器
                if(window.ActiveXObject)
                {
                    xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                }
                else if(window.XMLHttpRequest)
                {//其他浏览器
                    xmlHttpRequest = new XMLHttpRequest();
                    
                }
                if( null != xmlHttpRequest )
                {//发送请求
                    xmlHttpRequest.open("GET","servlet/AjaxServlet",true);//以GET方式向服务发送异步请求
                    xmlHttpRequest.onreadystatechange = ajaxCallBack;   //准备接受
                    xmlHttpRequest.send(null);                       //发送请求
                }
            }
            
            function ajaxCallBack()
            {    //接受响应
                if(xmlHttpRequest.readyState == 4)//等于4说明服务器向客户端已发送了数据
                {
                    if(xmlHttpRequest.status == 200)//说明发送的数据服务器没有报任何异常
                    {
                        var responseText = xmlHttpRequest.responseText;  //以Text的形式解析
                        document.getElementById("div1").innerHTML = responseText; //插入到HTML文档中
                    }
                }
            }
        </script>

      </head>
     
      <body>
        <input type="button" value="get content from serve" onclick="ajaxSubmit()"/>
        
        <div id="div1"></div>
      </body>

    </html>


    AjaxServlet.java

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class AjaxServlet extends HttpServlet
    {

        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException
        {

            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            System.out.println("doGet invoked");
            out.println("Hello World AJAX");
            
            out.flush();
            out.close();
        }

    }

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>

    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

     <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>AjaxServlet</servlet-name>
        <servlet-class>com.zhaoming.shopping.servlet.AjaxServlet</servlet-class>
      </servlet>

    <servlet-mapping>
        <servlet-name>AjaxServlet</servlet-name>
        <url-pattern>/servlet/AjaxServlet</url-pattern>
      </servlet-mapping>
        
        <welcome-file-list>
            <welcome-file>Index.jsp</welcome-file>
            <welcome-file>index.html</welcome-file>
        </welcome-file-list>


  • 相关阅读:
    【unity3d游戏开发之基础篇】unity3d射线的原理用法以及一个利用射线实现简单拾取的小例子
    【unity3d游戏开发之疑难杂症】Unity3d工程如何与MonoDevelop工具进行调试
    【unity3d游戏开发之疑难杂症】解决Unity3d脚本支持中文问题
    cocos2d 中添加显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)
    xcode连不上ipad的原因
    【unity3d游戏开发之疑难杂症】Error while importing package: Couldn't decompress package
    AS3 event flow 事件冒泡机制 以及 stopImmediatePropagation() stopPropagation()用法
    【unity3d游戏开发之基础篇】利用射线实现鼠标控制角色转向和移动(角色移动一)
    Asp.net Session认识加强Session究竟是如何存储你知道吗?
    Windows 7下VS2008无法调试2.0.50727.4952版本mscorlib.dll的解决办法
  • 原文地址:https://www.cnblogs.com/pangblog/p/3331323.html
Copyright © 2011-2022 走看看