javascript|js|xml|對象
xmlhttp對象可以用來在不重新整理頁面的情況下傳遞參數,可作為一種javascript向jsp傳遞參數的一種方法。
下面就是一個javascript向jsp傳遞參數的例子:
xmlhttp.jsp
<%@ page contentType="text/html; charset=GB2312" language="java" import="java.util.*" import="java.sql.*" %>
<html>
<head><title>n</title>
<script language="javascript">
function func()
{
xml = new ActiveXObject("Microsoft.XMLHTTP");
var post="<input type='text' name='name' value='1value'/>";//構造要攜帶的資料
xml.open("POST","xmlhttp.jsp",false);//使用POST方法開啟一個到伺服器的串連,以非同步方式通訊
xml.setrequestheader("content-length",post.length);
xml.setrequestheader("content-type","application/x-www-form-urlencoded");
xml.send(post);//發送資料
//返回結果
var v = xml.responseText;
//處理這個結果
document.write( '結果:' + v );
}
</script>
</head>
<body >
<%
out.println("abcd");
java.io.BufferedReader br = request.getReader();
String str = "";
String srt=br.readLine();
while(srt!=null)
{
str += srt+"\n";
srt=br.readLine();
}
out.println(str);
%>
</body>
</html>
通過上面這種手段就可以把參數"<input type='text' name='name' value='1value'/>"這個字串傳遞給本頁面,在頁面上顯示一個文字框,當然你還可以傳遞一個xml檔案,這樣你就需要在伺服器端的代碼中解析這個xml檔案,從中取得你所需要的參數
你可以給任何頁面傳遞參數,只需要改變xml.open("POST","xmlhttp.jsp",false);中的xmlhttp.jsp為你目標頁面得url就可以了
需要注意的是在低版的tomcat中會報出Read time out的錯誤,這是tomcat的原因,換一個高版本的就可以解決問題