本文實例講述了AJAX+Servlet實現(xiàn)的數(shù)據(jù)處理顯示功能。分享給大家供大家參考,具體如下:
實現(xiàn)功能:在輸入框中輸入字符,用AJAX傳到后臺Servlet處理后加上隨機數(shù),并返回到前臺顯示。
一、寫前臺jsp頁面index.jsp
%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
html>
head>
title>My JSP 'index.jsp' starting page/title>
script type="text/javascript">
/*
ajax 的幾個步驟:
1、建立XmlHttpRequest對象
2、設(shè)置回調(diào)函數(shù)
3、使用Open方法建立與服務(wù)器的連接
4、向服務(wù)器發(fā)送數(shù)據(jù)
5、在回調(diào)函數(shù)中針對不同響應(yīng)狀態(tài)進行處理
*/
var xmlHttp;
function createXMLHttpRequest(){ //1建立XmlHttpRequest對象
if(window.ActiveXObject){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
}catch(e){
alert("Error!!!");
}
}else{
xmlHttp = new XMLHttpRequest();
}
}
function showMes(){ //2設(shè)置回調(diào)函數(shù)
if(xmlHttp.readyState==4){ //數(shù)據(jù)接收完成并可以使用
if(xmlHttp.status==200){ //http狀態(tài)OK
//5、在回調(diào)函數(shù)中針對不同響應(yīng)狀態(tài)進行處理
document.getElementById("sp").innerHTML = xmlHttp.responseText; //服務(wù)器的響應(yīng)內(nèi)容
}else{
alert("出錯:"+xmlHttp.statusText); //HTTP狀態(tài)碼對應(yīng)的文本
}
}
}
/**
//這是GET方法傳送
function getMes(){
createXMLHttpRequest();
var txt = document.getElementById("txt").value;
var url="servlet/AjaxServlet?txt="+txt;
url = encodeURI(url); //轉(zhuǎn)換碼后再傳輸
xmlHttp.open("GET",url,true); //3使用Open方法建立與服務(wù)器的連接
xmlHttp.onreadystatechange=showMes;
xmlHttp.send(null); //4向服務(wù)器發(fā)送數(shù)據(jù)
}
*/
/**
*這是post方法
*/
function postMes(){
createXMLHttpRequest();
var txt = document.getElementById("txt").value;
var url = "servlet/AjaxServlet";
var params = "username="+txt;
// alert(params);
xmlHttp.open("POST",url,true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xmlHttp.send(params);
xmlHttp.onreadystatechange = showMes;
}
/script>
/head>
body>
input type="text" id="txt"/>
input type="button" value="query" onclick="postMes()" />
span id="sp">/span>
/body>
/html>
二、寫后臺Servlet加random隨機數(shù),關(guān)鍵代碼如下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8"); //用utf-8轉(zhuǎn)換獲得傳輸過來的碼
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String txt = request.getParameter("txt");
// String tx = new String(txt.getBytes("iso-8859"),"utf-8");
out.print("txt="+txt+Math.random());
out.flush();
out.close();
}
/**
* The doPost method of the servlet. br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
// String txt = new String(username.getBytes("ISO-8859-1"),"UTF-8");
String txt = new String(username);
out.print("txt="+txt+":"+Math.random());
out.flush();
out.close();
}
更多關(guān)于ajax相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jquery中Ajax用法總結(jié)》、《JavaScript中ajax操作技巧總結(jié)》、《PHP+ajax技巧與應(yīng)用小結(jié)》及《asp.net ajax技巧總結(jié)專題》
希望本文所述對大家ajax程序設(shè)計有所幫助。
您可能感興趣的文章:- Servlet3.0與純javascript通過Ajax交互的實例詳解
- 淺談ajax在jquery中的請求和servlet中的響應(yīng)
- Servlet獲取AJAX POST請求中參數(shù)以form data和request payload形式傳輸?shù)姆椒?/li>
- 實例解讀Ajax與servlet交互的方法
- jquery請求servlet實現(xiàn)ajax異步請求的示例
- 使用jquery 的ajax 與 Java servlet的交互代碼實例