jsp页面中使用iframe导致连接被重置、重复执行两次的奇怪问题!

FarStar 2003-10-09 02:33:48
先说一下环境winxp, jdk1.4.2, resin 3.0.3

在一个jsp页面中加了一个iframe,嵌入了另一个页面,当嵌入的页面执行form的提交动作时,连接经常的被重置,又重复执行了一次,提示:com.caucho.vfs.ClientDisconnectException: connection reset by peer。(tomcat下执行连个提示都没有,直接又重复执行了两次)。

两个页面的源代码如下,请大家研究一下,到底是怎么回事,怎么解决???

第一个文件: 1.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>主页面</title>
<script>
function pagereset(){
document.all.mainFrame.src = "2.jsp";
}
function ManagerButton(i){
document.form1.runType.value = i;
document.all.mainFrame.src = "2.jsp?runType=" + document.form1.runType.value;
}
</script>
</head>
<body>

<h1>主页面</h1>
<form name="form1" method="post">
<table width="95%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><input type="button" name="add" value="添加" onClick="ManagerButton(1)">
<input type="hidden" name="runType" value=""></td>
</tr>
<tr>
<td><hr></td>
</tr>
<tr>
<td valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top"> <IFRAME name=mainFrame src="2.jsp" frameBorder=0
noResize width="100%" height="200" allowTransparency></IFRAME>
</td>
</tr>
</table></td>
</tr>
<tr>
<td><hr></td>
</tr>
</table>
</form>
</body>
</html>

第二个文件: 2.jsp

<%@ page contentType="text/html; charset=GBK" %>
<%@ page import = "java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>
添加页面
</title>
<%!
int runType;
String Name;
public int StringToInt(String str){
if(str==null||str=="")
return -1;
else
return Integer.parseInt(str);
}
%>
<%
runType = StringToInt(request.getParameter("runType"));
Name = request.getParameter("Name");
%>
<script>
function ss(i){
form = document.form2;
form.runType.value = i;
form.submit();
}
</script>
</head>
<body bgcolor="#ffffff">
<form name=form2>
<input type=hidden name=runType value=<%=runType%>>
<%switch(runType){
case 1:
%>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="18" colspan=2 align=center><h1>添加页面</h1></td>
</tr>
<tr>
<td nowrap>名称:</td>
<td><input type=input name=Name value="" size=15></td>
</tr>
<tr>
<td colspan=2 ><input type="submit" value="添加" onclick="ss(11)">
<input type="reset" value="重写" ></td>
</tr>
</table>
<%
break;
case 11:
%>
<table width=80% align=center>
<%System.out.println(Name);%>
<tr>
<td ><h1>添加 <%=Name%> 成功</h1></td>
</tr>
<tr><td><h2>请查看控制台的输出窗口中连接是否被重置,Name被输出了两次!!</h2></td></tr>
<tr>
<td >
<input type=button name=close value="继续添加" onclick="document.location.href='2.jsp?runType=1'">  
<input type=button name=close value="页面复位" onclick="parent.pagereset()">
</td>
</tr>
</table>
<%
break;
default:
%>
<h1>请大家看看这个问题到底是什么原因造成的!怎么改?</h1>
<%
}
%>
</form>
</body>
</html>

...全文
924 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
FarStar 2003-10-11
  • 打赏
  • 举报
回复
找到原因了,不好意思,犯了一个比较低级的错误!!

在2.jsp中<input type="submit" value="添加" onclick="ss(11)"> type为submit类型的,而在他的ss()中又提交了一次:form.submit()
提交动作进行了两次所以导致com.caucho.vfs.ClientDisconnectException: connection reset by peer。

终于解决了!!
FarStar 2003-10-10
  • 打赏
  • 举报
回复
to zjjsgwm(hata): 加个alert???没明白啥意思!!

to Yssss1980(浪子雪影):本来设计这个程序是用来进行数据库操作的,操作语句就是放在现在的System.out.println 的位置,但是在执行的过程中发现sql语句总是经常被执行两次,找来找去发现并不是数据库操作命令的问题,可能是出在iframe的问题,最终简化了一下页面就成了现在的这两个页面。还特意将没必要的东西删掉,结果还是把<%@ page import = "java.sql.*"%>漏掉了,呵呵!

to xinshou1979330(Success.net)
加iframe的目的是当点击主页面中的不同功能按钮时在frame里显示不同的页面来实现不同的功能,这里的两个页面只是我将我原来的页面进行了最大化的简练,即反映出问题,又看起来方便,便于找出原因来。
倒不是我原来的程序要有什么保密的,而是方便大家查找问题,就这么一个目的。

这个问题挺奇怪的,执行时并不一定总是"connection reset by peer"(即导致System.out.println被执行两次),在我机器上被重置的几率90%以上,而我在另外一台上试验被重置的几率就少很多了,很多时候执行正常。

被这个问题困扰了许久,不行就考虑一下去掉iframe,重新改一下程序的结构 :(((( .........
zjjsgwm 2003-10-10
  • 打赏
  • 举报
回复
<script>
function pagereset(){
document.all.mainFrame.src = "2.jsp";
}
function ManagerButton(i){
document.form1.runType.value = i;
document.all.mainFrame.src = "2.jsp?runType=" + document.form1.runType.value;
}
都加个alert试试是不是都执行了...
xinshou1979330 2003-10-09
  • 打赏
  • 举报
回复
楼主这么做的意图是什么啊
为什么要在中途添加一个FRAME呢
开始不行么
Yssss1980 2003-10-09
  • 打赏
  • 举报
回复
怎么没看见数据库的操作呢
FarStar 2003-10-09
  • 打赏
  • 举报
回复
没人帮着顶,我自己先顶一下!!

81,122

社区成员

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

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