30分鐘學會使用Ajax:

來源:互聯網
上載者:User

 下面例子是介紹使用Ajax的post 方法,ajax的post方法使用比較多。

這個例子的作用是:輸入一個使用者名稱,檢查下使用者名稱是否可以用。

<一>:建個ajax的工具類

(1):建個ajaxUtils.js

(2):裡面代碼如下

var Ajax = {createXHR : function() {// 建立XHR對象if (window.XMLHttpRequest) {// 針對除IE瀏覽器以外的var xhr = new XMLHttpRequest();return xhr;} else if (window.ActiveXObject) {// 針對IE瀏覽器的var xhr = new ActiveXObject("Microsoft.XMLHTTP");return xhr;}},sendRequest : function(method, url, data, callback) {// callback代表函數名var xhr = this.createXHR();xhr.open(method, url, true);if ("GET" == method.toUpperCase()) {xhr.send(null);} else if ("POST" == method.toUpperCase()) {xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xhr.send(data);}xhr.onreadystatechange = function() {if (xhr.readyState == 4 && xhr.status == 200) {// callback(xhr);可以這樣callback({text : xhr.responseText,xml : xhr.responseXML});// 也可以這樣。這樣最好,物件導向}}}};

<二>:建jsp,在jsp中引入ajaxUtils.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 }/jsp/ajax/ajaxUtils.js""></script><script type="text/javascript">function checkUserName(){var username = document.getElementById("name").value;var password = document.getElementById("pwd").value;var url = "${pageContext.request.contextPath }/servlet/AjaxPostServlet";// 使用Ajax工具類,4個入參// 第一個入參:字串"get"// 第二個入參:請求的url// 第三個入參:請求的參數// 第四個入參:回呼函數,函數名隨便起,這裡我起了callbackAjax.sendRequest("post",url,"username="+username+"&password"+password, callback);}// 經過Servlet處理後返回的資訊function callback(data){// 後台返回的是字串,就用data.text,如果返回的是xml對象,則就用data.xmlvar value = data.text;//這個value要麼是Servlet裡out.print()裡的內容alert(value);}</script><title>學習ajax的Post方法</title></head><body><center><form action="" method="post">username:<input type="text" size="25" value="" id="name" name="username"/><input type="button" value="檢查是否被佔用" onclick="checkUserName();"/><br /><br /><br />password:<input type="password" size="25" value="" id="pwd" name="password" /><br /><br /></form></center></body></html>

<3>:配置WEB-INF下面的web.xml

 <servlet>  <servlet-name>ajaxPostServlet</servlet-name>  <servlet-class>com.web.AjaxPostServlet</servlet-class>  </servlet>  <servlet-mapping>  <servlet-name>ajaxPostServlet</servlet-name>  <url-pattern>/servlet/AjaxPostServlet</url-pattern>  </servlet-mapping>

<4>:建Servlet,如AjaxPostServlet,代碼如下

package com.web;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 AjaxPostServlet 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("username");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();}}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.