官术网_书友最值得收藏!

8.4 關于Ajax的經典框架——jQuery

在Java Web項目中為了方便用戶實現Ajax技術的應用,經常會使用到Ajax的各種框架。Ajax框架出現的目標就是使煩瑣的Ajax開發變得更加容易,讓程序員不用重復地構造JavaScript的底層。本章將詳細介紹關于Ajax的經典框架——jQuery的使用。

8.4.1 jQuery框架的下載和配置

JQuery框架由John Resig于2006年初創建,主要用來簡化JavaScript和Ajax的編程。使用該框架可以非常方便地在網頁上實現操作文檔、處理事件、實現特效,并為Web頁面添加Ajax方面的交互。

目前JQuery框架比較穩定的版本為1.6.2,具體的下載步驟如下:

01 首先訪問下載JQuery組件的官方網站(http://jquery.com),如圖8.16所示。

圖8.16 JQuery組件首頁

02 在Jquery首頁中,首先選擇“DEVELOPMENT”選項,然后單擊“Download(jQuery)”鏈接就可以實現關于JQuery組件的下載,具體過程如圖8.17所示。

圖8.17 JQuery組件下載

至此,就完成了對JQuery組件的下載。由于該組件是一個javascript文件,所以在具體使用時,可以通過直接引入外部javascript文件的方式來調用該組件。

8.4.2 jQuery框架的簡單使用

為了能夠清楚地理解JQuery框架,本節將詳細介紹實現用戶名驗證的功能。雖然通過Ajax技術也可以實現該功能,但是使用JQuery框架卻可以更簡單,具體步驟如下:

01 新建一個名Jqueryajax的Web Project,在目錄Jqueryajax\WebRoot下創建一個名為javascript的文件夾用來存放該項目的JavaScript類型文件。

02 復制JQuery框架中的jquery.js文件到javascript文件夾中,完整項目的目錄結構如圖8.18所示。

圖8.18 目錄結構

03 在目錄Jqueryajax\WebRoot下,首先創建一個名為ajax.html的頁面,接著在Jqueryajax\Src目錄下創建一個名為ajaxservlet的Servlet程序。

關于ajax.html頁面的內容如下所示:

              //******* ajax.html **************
              <head>
                  <title>用戶名校驗</title>
                  <script type="text/javascript" src="javascript/jquery.js"></script>
                  <script type="text/javascript" src="javascript/verify.js"></script>
              </head>
              <body>
                  請輸入用戶名:
                  <br />
                  <input type="text" id="userName" />
                  <input type="button" value="校驗" onclick="verify()" />
                  <div id="result"></div>
              </body>
              …

關于ajaxservlet程序的內容如下所示:

              //******* ajaxservlet.java **************
              public class ajaxservlet extends HttpServlet {
              protected void doPost(HttpServletRequest httpServletRequest,
            HttpServletResponse httpServletResponse) throws ServletException,
            IOException {
                  doGet(httpServletRequest, httpServletResponse);
              }
              //編寫doGet方法
              protected void doGet(HttpServletRequest httpServletRequest,
            HttpServletResponse httpServletResponse) throws ServletException,
            IOException {
                  try {
            //設置編碼格式
            httpServletResponse.setContentType("text/html;charset=utf-8");
            PrintWriter out = httpServletResponse.getWriter();
            //獲取參數
            String old = httpServletRequest.getParameter("name");
            String name = URLDecoder.decode(old, "UTF-8");
            if(old==null||old.length()==0){               //判斷參數
                              out.println("用戶名不能為空");
            } else {
                              if (name.equals("cjgong")) {
                    out.println("用戶名[" + name + "]已經存在,請使用其他用戶名");
                              } else {
                    out.println("用戶名[" + name + "]尚未存在,可以使用該用戶名注冊
  ");
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
              }

接著在web.xml文件中配置Servlet程序,具體內容如下:

                  <!--配置ajaxservlet類路徑-->
                  <servlet>
                      <servlet-name>ajaxservlet</servlet-name>
                      <servlet-class>ajaxservlet</servlet-class>
              </servlet>
                  <!--配置ajaxservlet映射路徑-->
                  <servlet-mapping>
                      <servlet-name>ajaxservlet</servlet-name>
                      <url-pattern>/ajaxservlet</url-pattern>
                  </servlet-mapping>

04 創建好客戶端和服務器端程序后,接著就需要通過創建一個javascript文件來實現兩者的相互交互,該javascript文件的具體內容如下:

              //定義用戶名校驗的方法
              function verify() {
                var jqueryObj = $("#userName");
                var userName = jqueryObj.val();
                $.get("ajaxservlet?name=" + userName, null, callback);
              }
              //回調函數
              function callback(data) {
                var resultObj = $("#result");
                resultObj.html(data);
              }

代碼說明:

● 由于上述代碼需要使用JQuery框架的方法,所以必須要把JQuery框架中名為jquery.js的文件引入該項目。

● 在具體實現客戶端與服務器端相互交互時,首先要獲取客戶端文本框中的內容。查看JQuery幫助文檔可以發現,通過$()查找節點的方式可以實現該功能。在表達式$()中,參數必須為#加上id屬性值,同時該表達式返回的是jquery的對象。接著通過jquery的對象的val()方法獲取該節點的值。

● 獲取客戶端的內容后,就需要把該內容傳送給服務器中的Servlet程序。通過使用JQuery框架中XMLHTTPrequest對象的get方法把請求封裝后發送給服務器,即$.get()。在該方法中存在3個參數,其中第一個參數表示處理請求的url地址;第二個參數表示發送請求中的key/value值對,由于使用Get方法來發送請求,所以該值一般會直接寫在url地址的后面,于是該值一般為null;第三個參數表示回調函數,注意這里只需要函數名稱,沒有括號。

● 當與服務器交互成功后,就需要調用回掉函數callback()。在該方法中首先通過參數data獲取服務器返回的數據,然后再把該數據顯示在客戶端。在具體顯示時,首先獲取顯示內容節點的jquery對象,然后通過該對象的html()方法在相應的節點上顯示出參數的內容。

啟動服務器。最后打開瀏覽器,在地址欄目中輸入地址http://localhost:8080/Jqueryajax/ajax.html,出現如圖8.19所示的頁面。在該頁面中如果填寫“cjgong”字符串,單擊“校驗”按鈕該頁面就會變成如圖8.20所示的內容。

圖8.19 登錄首頁

圖8.20 校驗結果

主站蜘蛛池模板: 化州市| 黑河市| 奉新县| 阿坝| 两当县| 淮滨县| 始兴县| 若尔盖县| 巩留县| 蒲城县| 三穗县| 沙洋县| 兴化市| 洛隆县| 措美县| 宁远县| 铁岭县| 台北市| 泰州市| 始兴县| 丹棱县| 南陵县| 澄江县| 临汾市| 城固县| 临邑县| 聂荣县| 陇南市| 定边县| 鲜城| 蒲江县| 小金县| 安陆市| 公安县| 沐川县| 赣州市| 海宁市| 丹棱县| 许昌市| 黎川县| 商水县|