Jsp页面在提交后回显内容不完全??

polelf 2006-06-20 11:10:04
使用Tomcat
我有个Jsp页面在提交后数据库操作很慢 并且在回显给客户端时内容不完全
这是什么原因 希望有高手指导下 急需解决 马上就得交毕业设计了

该页面的一段代码:
<%
//-------------------------名词解释
System.out.println("名词解释");

String sqlno1="select * from tbkcconfig where kcid=" + kcid + " and category=1 and paperno=" + paperno;
ResultSet rsno1 = conn.executeUpdatableQuery(sqlno1);
rsno1.next();

int datano = rsno1.getInt("datano");
int datavalue = rsno1.getInt("datavalue");
rsno1.close();

if (datano != 0) {
String sqlmc="SELECT top " + datano + " tbtk.tmid, tbtk.title,tbtk.category, tbkc.kcid, tbkc.kcm, tbtk.chapter,tbtk.level,photo FROM tbkc, userdata , tbtk WHERE username='" + username + "' and userdata.tmid=tbtk.tmid and tbtk.kcid=tbkc.kcid and tbkc.kcid=" + kcid + " and ( tbtk.kao=1 or tbtk.kao=2 ) and category=1 and userdata.paperno=" + paperno + " order by tbtk.tmid";
ResultSet rsmc = conn.executeQuery(sqlmc);

if (rsmc.next()) {

%><table border="1" cellspacing="1" style="border-collapse: collapse" bordercolor="#799AE1" width="100%" height="64">
<tr class="trh">
<td width="32" align="center" bgcolor="#799AE1" height="22">
<font color="#FFFFFF"><b>序号</b></font></td>
<td align="center" bgcolor="#799AE1" width="604" height="22">
<p align="center"><font color="#FFFFFF"><b>名词解释<span lang="en-us">(</span>共<%= datano %>题<span lang="en-us">,<%= datano*datavalue %></span>分<span lang="en-us">)</span></b></font></td>
</tr>
<%
int imc=1;
for(int mcno = 1; mcno <= datano; mcno++)
{
int rsmc_tmid = rsmc.getInt("tmid");
String textmc1 = "textmc" + rsmc_tmid;

if (request.getMethod().equals("POST"))
{
String sqlmc2="SELECT * FROM userdata where username='" + username + "' and tmid=" + rsmc_tmid + "and paperno=" + paperno;
ResultSet rsmc2 = conn.executeUpdatableQuery(sqlmc2);
rsmc2.next();

String textmc2= GetRequest(textmc1, request);

System.out.println("保存名词解释 答案:" + textmc2.trim());
rsmc2.updateString("uans", textmc2.trim());
rsmc2.updateRow();
rsmc2.close();
}

String sqlmc3="SELECT * FROM userdata where username='" + username + "' and tmid=" + rsmc_tmid + "and paperno=" + paperno;
ResultSet rsmc3 = conn.executeQuery(sqlmc3);
rsmc3.next();

String rsmc3_uans = rsmc3.getString("uans");
if(rsmc3_uans == null) rsmc3_uans = "";
%>
<tr class="trh1">
<td align="center" height="1" width="32"><%=imc%></td>
<td align="left" width="604" height="1">       <%=rsmc.getString("title")%>——(难度:<%
int level = rsmc.getInt("level");
if (level ==1 ) {
out.write( "容易");
}
if ( level ==2) {
out.write( "中等");
}

if ( level ==3) {
out.write( "较难");
}
if ( level ==4 ) {
out.write( "最难");
}
%>) <br><%
String photo = rsmc.getString("photo");
if (photo != null && !photo.equals("")) {
%> <center><br>

<img border="0" src="examimage/<%= photo %>">
</center>

<% }%><br>答:
<input type="text" name="<%=textmc1%>" size="80" value="<%=rsmc3_uans%>" onblur="this.className='inputnormalleft'" onfocus="this.className='inputedit';this.select()" class="inputnormalleft"><br> <br> </td>
</tr>
<%

System.out.println("名词解释 rsmc.next() " + imc);
rsmc3.close();
if (!rsmc.next()) break;
imc=imc+1;
}
rsmc.close();
%>
<tr>
<td align="center" bgcolor="#FFFFFF" height="21" width="640" colspan="2" bordercolor="#FFFFFF">
<span lang="en-us">                        
</span>
<input class="s02" type="submit" value="保存名词解释" name="B1" >
</td>
</tr>
</table> <br>

<% }%>
<% }%>
确定里面的for循环是执行了的 但是for循环之间的html内容却在循环几次后没再发给客户端了
望高手看看是代码问题 还是Tomcat配置哪有问题
...全文
358 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
polelf 2006-06-21
  • 打赏
  • 举报
回复
conn是一个bean
<jsp:useBean id="conn" scope="page" class="mypackage.DBConnectionBean"/>
conn关闭了不是所有的rs都无效了吗
kevinliuu 2006-06-21
  • 打赏
  • 举报
回复
感觉你的connection用尽了

由于你在遍历rs时又有for循环,每次循环又有两次JDBC操作,而每次的操作都没有关闭数据库连接,这样,conn的资源很容易耗尽。

尝试for循环中用一次关一次conn,当然,用之前要先getConn

记得不要关闭外部rs那个conn,否则,rs会被关闭
polelf 2006-06-21
  • 打赏
  • 举报
回复
从数据库中取了11行数据 System.out.println也执行了11次 但每次都是在执行8 9次之后就没有往浏览器发内容回来了
执行中没出现异常提示
yeno 2006-06-21
  • 打赏
  • 举报
回复
楼主用System.out.println打印循环变量吧,看它运行到什么时候就咔嚓掉了……
执假以为真 2006-06-21
  • 打赏
  • 举报
回复
对,把逻辑的和表示的分开,这样才显得专业。
huxinsheng168 2006-06-21
  • 打赏
  • 举报
回复
特讨厌这种写法,你再怎么写.也要分成两个jsp吧.一个负责逻辑的.一个负责表示的.
  • 打赏
  • 举报
回复
多数情况是读出数据库中数据类型和你接的数据类型上发生了冲突.
你应该看第8 9次后的数据是否和前面数据类型不一致
  • 打赏
  • 举报
回复
8 9 次之后的数据和你想要显示的数据类型有可能不一致.这种情况是很容易导致jsp只输出部分数据.
wfyfngu 2006-06-21
  • 打赏
  • 举报
回复
问题?
我用SqlServer做数据库服务器时也碰到了和你一样的问题
但是换成mySql就好了
什么原因呢??
china2001ok 2006-06-21
  • 打赏
  • 举报
回复
use Vctor or ArrayList to store your infomation ,use jsp to display the result Vector or ArrayList
eqxu 2006-06-21
  • 打赏
  • 举报
回复
System.out.println("名词解释 rsmc.next() " + imc);
=〉out.println("名词解释 rsmc.next() " + imc);

二、要将数据库操作封装,写一个bean来操作数据库

三、返回的数据用vector或其他的集合操作返回




这样分离了表示与操作




仔细参考google网络信息
kevinliuu 2006-06-21
  • 打赏
  • 举报
回复
最好将每次要查询的数据以List或值对象数组形式返回,不要直接返回rs
polelf 2006-06-21
  • 打赏
  • 举报
回复
有高手进来请留下个qq 我qq联系你
我的qq是23925427
little06 2006-06-20
  • 打赏
  • 举报
回复
代码有点乱
内容不完全,我想是判定条件出了问题
追踪一下for里面的代码执行情况
一条一条语句的追踪

。。。。。
polelf 2006-06-20
  • 打赏
  • 举报
回复
自己先顶
一定要有高手看到帮我解决阿 要不麻烦了 初学jsp 不要打消我积极性

81,092

社区成员

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

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