求助!!ajax 向servlet 传值 。。。。失败,已被搞得焦头烂额。。。

札记_ 2015-05-20 03:19:34
设置的至无法传值至servlet ,servlet中使用

String str = request.getParameter("str");
out.print(str);
接收值,但是无法回调显示至jsp页面 ,
点击按钮无反应,用alert()检测 if(req.readyState == 4 && req.status == 200) {
document.getElementById('info').innerHTML= req.responseText;
}
此段不运行。。。。。。


各种查资料。。。无果,而来求助。。

<!-- jsp -->
<html>
<head>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<%
Map<String,String> mapOne = new HashMap<String,String>();
mapOne.put("信息工程学院","信息工程学院");
mapOne.put("经济管理学院","经济管理学院");
mapOne.put("法学院","法学院");
%>
<!-- 二级联动菜单 -->
<script type="text/javascript">
/*声明两个数组,以便区别,具体操作,应该是通过底层返回一个list*/
var one = new Array("软件工程","信息工程","信息安全");
var two = new Array("国际贸易","财务管理","会计");
var three = new Array("法学","国际汉语");
/*该函数,控制二级级联操作*/
function specieSelChange(selBox)
{
var str;
if(selBox.value == "信息工程学院")
{
for(var i = 0; i < one.length; i ++)
{
str += "<option>" + one[i] + "</option>";
}
}
else if(selBox.value == "经济管理学院")
{
for(var i = 0; i < two.length; i ++)
{
str += "<option>" + two[i] + "</option>";
}
}
else
{
for(var i = 0; i < three.length; i ++)
{
str += "<option>" + three[i] + "</option>";
}
}
document.all('list').innerHTML = str;
}

</script>
<script type="text/javascript">
var req;
function validate() {
var str = document.getElementById("list").value;
alert(str);
//访问validate.do这个servlet,同时把获取的表单内容idField加入url字符串,以便传递给validate.do
var url = "<%=basePath%>/ClassScoreServlet";
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.onreadystatechange = function callback(){
if(req.readyState == 4 && req.status == 200) {
document.getElementById('info').innerHTML= req.responseText;
}
}
req.open("POST", url, true);
xmlHttpxmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.send(str);
}

</script>
<style type="text/css"> td {text-align:center}</style>
</head>


<body bgcolor="#434343">
<font color="#ffffff" size=+2>
<center> 班级成绩查询 </center>
<hr width="90%">
</font>
<center>
<table border="0" align="center" >
<tr>
<td> <font color="#FFFFFF">学院:</font></td>
<td>
<!-- 页面使用循环取出数据 如果需要更标准,请使用jstl标签,或者struts标签 -->
<select id="selBox" onchange="specieSelChange(this)" name="select1" style="width:120">

<option>---请选择---</option>

<option value="信息工程学院">信息工程学院 </option>
<option value="法学院">法学院 </option>
<option value="信息工程学院">信息工程学院 </option>
</select>
</td>
<td width="50"></td>
<!-- 第二个下拉框,开始执行二级联动 -->

<td>
<font color="#FFFFFF"> 专业:</font>
</td>
<td >
<!-- 该下拉框,使用自动生成 -->
<select id="list" name="select2" style="width:80" >
<option>--请选择--</option>

</select>
</td>
<td width="30"></td>
<td>
<button onclick="validate()"> 查看</button>
</td></tr>

</table>
</center>
<span id="info"></span>

</table>
</body>
</html>

 
<!--servlet-->

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");

PrintWriter out = response.getWriter();;
String str = request.getParameter("str");
out.print(str);
}
...全文
167 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
a327369238 2015-05-21
  • 打赏
  • 举报
回复
引用 4 楼 shujun_123 的回复:
[quote=引用 1 楼 a327369238 的回复:] 1.var url = "<%=basePath%>/ClassScoreServlet"; 输出正确吗?路径正确吗? 2.xmlHttpxmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 你直接复制的吧?都不看仔细,应该是req..setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 3.req.send(str); 应该是req.send("str="+str);
发现一个异常[/quote] 还有啊,我上面的req..setRe...... 这里多了一个 .(点) 你别复制,看清楚
a327369238 2015-05-21
  • 打赏
  • 举报
回复
引用 3 楼 shujun_123 的回复:
[quote=引用 1 楼 a327369238 的回复:] 1.var url = "<%=basePath%>/ClassScoreServlet"; 输出正确吗?路径正确吗? 2.xmlHttpxmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 你直接复制的吧?都不看仔细,应该是req..setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 3.req.send(str); 应该是req.send("str="+str);
地址不是应该是 servlet的正常访问地址吗?? http://localhost/ClassScoreServle 不会错 按你说的都改了,发现if(req.readyState == 4 && req.status == 200) { document.getElementById('info').innerHTML= req.responseText; } 此段还是不会运行,只能运行else中的代码。。。 运行结果。。。。 [/quote] 很明显,路径错误了 这要看你Servlet设定时候的路径怎么设置的了,通常,在根目录,都是默认的话,直接写成:url="ClassScoreServle";就可以了
札记_ 2015-05-20
  • 打赏
  • 举报
回复
引用 1 楼 a327369238 的回复:
1.var url = "<%=basePath%>/ClassScoreServlet"; 输出正确吗?路径正确吗? 2.xmlHttpxmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 你直接复制的吧?都不看仔细,应该是req..setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 3.req.send(str); 应该是req.send("str="+str);
发现一个异常
札记_ 2015-05-20
  • 打赏
  • 举报
回复
引用 1 楼 a327369238 的回复:
1.var url = "<%=basePath%>/ClassScoreServlet"; 输出正确吗?路径正确吗?
2.xmlHttpxmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 你直接复制的吧?都不看仔细,应该是req..setRequestHeader("Content-type", "application/x-www-form-urlencoded");
3.req.send(str); 应该是req.send("str="+str);

地址不是应该是 servlet的正常访问地址吗?? http://localhost/ClassScoreServle 不会错

按你说的都改了,发现if(req.readyState == 4 && req.status == 200) {
document.getElementById('info').innerHTML= req.responseText;
}
此段还是不会运行,只能运行else中的代码。。。
运行结果。。。。
札记_ 2015-05-20
  • 打赏
  • 举报
回复
地址不是应该是 servlet的正常访问地址吗?? http://localhost/ClassScoreServle 不会错

按你说的都改了,发现if(req.readyState == 4 && req.status == 200) {
document.getElementById('info').innerHTML= req.responseText;
}
此段还是不会运行,只能运行else中的代码。。。
运行结果。。。。
a327369238 2015-05-20
  • 打赏
  • 举报
回复
1.var url = "<%=basePath%>/ClassScoreServlet"; 输出正确吗?路径正确吗? 2.xmlHttpxmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 你直接复制的吧?都不看仔细,应该是req..setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 3.req.send(str); 应该是req.send("str="+str);

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧