我原先剛開始學AJAX的時候,忘了從什麼地方拉下來的一篇文章,不過,如果沒有AJAX基礎,最好不看這篇示例,因爲你肯定看不懂,因爲這個示例頁不能夠給你立即看到立即實現的效果,你應該先去看一個最簡單的示例,怎麼樣用AJAX去把一個文本文件的內容讀回來。然後再回來看這篇文章,這裏你可以看到使用AJAX分別把內容提交到STRUTS,SERVLET,WEBWORK,是怎麼樣操作的。我在看這篇文章以前,都是把一個JSP的處理請求,發給另外一個JSP頁面處理,並在那個頁面理採用BEAN的方式,雖然我是採用的STRUTS結構,但是卻不知道可以直接將內容提交到ACTION,這樣就可以減少一道工序了,人笨就是這樣。
寫這個頁面的朋友是誰,我真的忘了,不過,還是非常感謝。示例就自己看吧: 86oo.com歡迎你
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
ajax
</title>
</head>
<body bgcolor="#ffffff">
<h1>
<input name="username" type="text" maxlength="20" />
<input id="chk-name-btn" type="button" value="檢測帳號" οnclick="testName('<%=request.getContextPath()%>')" />
<div id="view_name"></div>
</h1>
</body>
</html>
<script language="javascript">
if (window.ActiveXObject && !window.XMLHttpRequest) {
window.XMLHttpRequest=function() {
return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP');
};
}//取得XMLHttpRequest對象
歡迎各位訪問86oo.com
function testName(path){ 您所瀏覽的文章來自86oo.com
//path是取得系統路徑
var view_name=document.getElementById("view_name");
var req=new XMLHttpRequest();
if (req) {
req.onreadystatechange=function() {
if (req.readyState==4 && req.status==200) {//判斷狀態,4是已發送,200已完成
if(req.responseText==0){
view_name.style.color='green';
view_name.innerHTML='該用戶名可以正常使用';
}else if(req.responseText==1){
86oo.com
view_name.style.color='red';
view_name.innerHTML='該用戶名已經被使用';
}else{
view_name.style.color='red';
view_name.innerHTML='該用戶名含有非法字符!';
}
}
} http://www.86oo.com
req.open('POST', path+'/ajax.jsp');//jsp
req.open('POST', path+'/ajax.do');//struts
//req.open('POST', path+'/ajax.servlet');//servlet
//req.open('POST', path+'/ajax.action');//webwork
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send("");//發送參數如果有參數req.send("username="+user_name);用request取得
}
}
</script>
這個jsp頁面並沒有取得用戶名,就是演示一下。還有<div>可以換span,具體作用問美工吧。 http://www.86oo.com
接受ajax請求的action。 www.86oo.com
import org.apache.struts.action.*;
import javax.servlet.http.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter; 86oo精彩教程
/**
* <p>Title:AjaxAction </p>
*/
public class AjaxAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
PrintWriter out = response.getWriter();
out.print(1);//ajax取得都是字符的輸出。如果數據量大的話,還可以用xml來發送和接受
return null;
}
} 86oo.com提供各類教程
struts-config.xml 86oo精彩教程
<action type="test.whw.upload.AjaxAction" validate="false" scope="request" path="/ajax"/>
---------------------------- www.86oo.com
如果是servlet www.86oo.com
web.xml 歡迎各位訪問86oo.com
<servlet>
<servlet-name>AjaxServlet </servlet-name>
<servlet-class>servlet.AjaxServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AjaxServlet </servlet-name>
<url-pattern>/AjaxServlet .servlet</url-pattern>
</servlet-mapping> 86oo.com
AjaxServlet.java 86oo精彩教程
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 {
Logger log = Logger.getLogger(this.getClass());
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
response.setContentType("text/xml; charset=GBK");
PrintWriter out = response.getWriter();
out.print(2);
}
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
} 86oo.com
//Process the HTTP Put request
public void doPut(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
} 歡迎各位訪問86oo.com
//Process the HTTP Delete request
public void doDelete(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}