ajax的簡單應用

今天初學ajax,感受ajax真是一門好技術,因此就感受得要學好它javascript

先寫一個簡單的例子吧css

首先建立一個jsp吧,ajax.jsphtml

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>"> 
    <title>My JSP 'ajax.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
                                                                    
    <script type="text/javascript">
                                                                    
    var xmlHttpRequest = null; //聲明一個空對象以接收XMLHttpRequest對象
                                                                    
    function ajaxSubmit()
    {
        if(window.ActiveXObject) // IE瀏覽器
        {
            xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
        else if(window.XMLHttpRequest) //除IE外的其餘瀏覽器實現
        {
            xmlHttpRequest = new XMLHttpRequest();
        }
                                                                        
        if(null != xmlHttpRequest)
        {
            var v1 = document.getElementById("value1ID").value;
            var v2 = document.getElementById("value2ID").value;
                                                                            
            xmlHttpRequest.open("POST", "AjaxServlet", true);
            //關聯好ajax的回調函數
            xmlHttpRequest.onreadystatechange = ajaxCallback;
                                                                            
            //真正向服務器端發送數據
            // 使用post方式提交,必需要加上以下一行
            xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
            xmlHttpRequest.send("v1=" + v1 + "&v2=" + v2);
        }
    }
    function ajaxCallback()
    {
        if(xmlHttpRequest.readyState == 4)
        {
            if(xmlHttpRequest.status == 200)
            {
                var responseText = xmlHttpRequest.responseText;
                                                                                
                document.getElementById("div1").innerHTML = responseText;
            }
        }
    }
    </script>
  </head>
  <body>
    <input type="button" value="get content from server"     <input type="text" name="value1" id="value1ID"><br>
    <input type="text" name="value2" id="value2ID"><br>
    <div id="div1"></div>
  </body>
</html>

而後再建立一個進行異步處理的servlet AjaxServlet.servletjava

此servlet處理ajax.jsp 而後返回數據ajax

/**
 * author botao
 * 功能:用來測試ajax的servlet
 */
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 {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        System.out.println("doGet invoked");
        process(req, resp);
    }
    private void process(HttpServletRequest req, HttpServletResponse resp)
            throws IOException
    {
        String v1 = req.getParameter("v1");
        String v2 = req.getParameter("v2");
        System.out.println("v1=" + v1 + ", v2=" + v2);
                 
        String v3 = String.valueOf(Integer.valueOf(v1) + Integer.valueOf(v2));
        PrintWriter out = resp.getWriter();
        // try
        // {
        // Thread.sleep(5000);
        // }
        // catch (InterruptedException e)
        // {
        // e.printStackTrace();
        // }
        resp.setHeader("pragma", "no-cache");
        resp.setHeader("cache-control", "no-cache");
        out.println(v3);
        out.flush();
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException
    {
        System.out.println("doPost invoked");
        this.process(req, resp);
    }
}


這樣,一個簡單的ajax異步刷新就完成了
瀏覽器

相關文章
相關標籤/搜索