下面的例子是用jQuer的Ajax功能的get方法,進行非同步請求。
效果是:點擊按鈕,檢查輸入的username是否可用。
<一>下載個jquery.js,載項目名WebRoot下建個檔案夾jQuery,把jquery.js放在這個檔案夾下。
<二>建個jsp,裡面代碼如下
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!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"><script type="text/javascript" src="${pageContext.request.contextPath }/jQuery/jquery.js"></script><script type="text/javascript">// jQuery的$(function(){}); 相當於js中的window.onload=function(){}$(function(){var btn = $("#btn");btn.click(function(){// 對按鈕綁定var username = $("#name").attr("value");var password = $("#pwd").attr("value");var url = "${pageContext.request.contextPath }/servlet/JQueryAjaxGetServlet";// 使用jQuery的Ajax的方法,4個入參// 第一個入參:請求的url// 第二個入參:傳遞的參數以及值,// 第三個入參:回呼函數// 第四個入參:返回來值的方法,此處寫"text"意思是字串$.get(url,{name:username,password:password},callback,"text");});});// 經過Servlet處理後返回的資訊function callback(data){//這個data要麼是Servlet裡out.print()裡的內容alert(data);}</script><title>學習jQuery的ajax的Get方法</title></head><body><center><form action="" method="get">username:<input type="text" size="25" value="" id="name"/><input type="button" value="檢查是否被佔用" id="btn"/><br /><br /><br />password:<input type="password" size="25" value="" id="pwd"/><br /><br /></form></center></body></html>
<三>在WEB-INF下得web.xml配置
<servlet> <servlet-name>jqueryAjaxGetServlet</servlet-name> <servlet-class>com.web.ajax.JQueryAjaxGetServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>jqueryAjaxGetServlet</servlet-name> <url-pattern>/servlet/JQueryAjaxGetServlet</url-pattern> </servlet-mapping>
<4>:寫Servlet,Servlet代碼如下
package com.web.ajax;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 JQueryAjaxGetServlet extends HttpServlet{@Overrideprotected void service(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=UTF-8");response.setHeader("Cache-Control", "no-cache");PrintWriter out = response.getWriter();String username = request.getParameter("name");String password =request.getParameter("password");if("zhangsan".equals(username)){//此處是out.print不是out.printlnout.print("不可用");//out.print()裡的內容將會輸出到jsp頁面中callback函數裡}else{out.print("可以使用");}out.flush();out.close();}}
運行下,可以看看效果。
jQuery的Ajax中post方法和get方法極為相似,只需把jsp中的
$.get()換成$.post()就OK了