javascript向jsp传递参数的一种手段:使用xmlhttp对象

发表于:2007-07-01来源:作者:点击数: 标签:
xmlhttp对象可以用来在不刷新页面的情况下传递参数,可作为一种 java script向jsp传递参数的一种方法。 下面就是一个javascript向jsp传递参数的例子: xmlhttp.jsp %@ page contentType="text/html; charset=GB2312" language="java" import="java.util.*" i

  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 onLoad="func()">
<%
     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的原因,换一个高版本的就可以解决问题

原文转自:http://www.ltesting.net