怎么会有死循环的??

jspboysz 2003-09-17 02:24:40
运下到以下程序,机子CUP占用100%,但数据库只有四条记录的,,真搞不明,


try{

ResultSet RS = dbbean.executeQuery("select * from l_zhangjia");
while (RS.next())
%>
<tr>
<td align=middle bgcolor=#f4faed width="3%" height="37">
<div align="center"><%=RS.getInt("id")%></div>
</td>
<td align=middle bgcolor=#f4faed width="19%" height="37">
<div align="center"><%=RS.getInt("datetime")%></div>
</td>
<%

}

RS.close();
dbbean.close();


}catch(Exception e){
out.println("无法打开");
}
...全文
62 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
swinging 2003-09-17
  • 打赏
  • 举报
回复
while (RS.next())
后面少一个"{"
这样你的结果不可预知,
很可能就是相当于执行:
while (RS.next())
out.println("<tr>");

看JSP处理的内部机制了。
给你一段一个JSP反编译的结果:
jspfactory = JspFactory.getDefaultFactory();
httpservletresponse.setContentType("text/html;charset=gb2312");
pagecontext = jspfactory.getPageContext(this, httpservletrequest, httpservletresponse, "", true, 8192, true);
javax.servlet.ServletContext servletcontext = pagecontext.getServletContext();
ServletConfig servletconfig = pagecontext.getServletConfig();
javax.servlet.http.HttpSession httpsession = pagecontext.getSession();
jspwriter = pagecontext.getOut();
jspwriter.print(_jspx_html_data[0]);
String s = (String)httpservletrequest.getAttribute("time");
jspwriter.print(_jspx_html_data[1]);
jspwriter.print(httpservletrequest.getContextPath());
jspwriter.print(_jspx_html_data[2]);
jspwriter.print(s);


注意看里面的变量s,JSPWRITER一段一段得输出HTML信息,在必要得地方输出s,
s是一个servlet在request里设置的属性。
页面中在那个地方输出,
所以你的这段代码的可能结果是:
while (RS.next())
out.println(html_data);

其中html_data可能是:
<tr>
<td align=middle bgcolor=#f4faed width="3%" height="37">
<div align="center">

另外,正如 caina3(阿郎) ( 所指,
不明白你代码少括号居然还能运行。
liuxiaobo8590 2003-09-17
  • 打赏
  • 举报
回复
while(RS.next()){
-----------------------
-----------------------
}你的括号是不配对
RS.close();
dbbean.close();

<%=RS.getInt("datetime")%>也不行吧?<%=RS.getDate("datetime")%>


1981520baby 2003-09-17
  • 打赏
  • 举报
回复
兄弟:应该这样写:
try{
ResultSet RS = dbbean.executeQuery("select * from l_zhangjia");
while (RS.next()){
%>
<tr>
<td align=middle bgcolor=#f4faed width="3%" height="37">
<div align="center"><%=RS.getInt("id")%></div>
</td>
<td align=middle bgcolor=#f4faed width="19%" height="37">
<div align="center"><%=RS.getInt("datetime")%></div>
</td>
<%
}
RS.close();
dbbean.close();
}catch(Exception e){out.println("无法打开");}
fft123 2003-09-17
  • 打赏
  • 举报
回复
while (RS.next())
后面掉了{

还有你的字段类型是不是都是int?如果不是,可以用getString来取
newman0708 2003-09-17
  • 打赏
  • 举报
回复
<%

}<-----------------你的括号是不配对的,能编译就已经错了,怎么还能运行,
                  哈哈...,你倒还能运行,真强!

RS.close();
dbbean.close();
retfu1 2003-09-17
  • 打赏
  • 举报
回复
while (RS.next())没有{}
smartzhang 2003-09-17
  • 打赏
  • 举报
回复
<%=RS.getInt("datetime")%>
caina3 2003-09-17
  • 打赏
  • 举报
回复
try{

ResultSet RS = dbbean.executeQuery("select * from l_zhangjia");
while (RS.next())
%>
<tr>
<td align=middle bgcolor=#f4faed width="3%" height="37">
<div align="center"><%=RS.getInt("id")%></div>
</td>
<td align=middle bgcolor=#f4faed width="19%" height="37">
<div align="center"><%=RS.getInt("datetime")%></div>
</td>
<%

}
~~~请问,它对应的括号在哪里?
///////////////////////////////////////////////////////////////////////////////////////////////

RS.close();
dbbean.close();


}catch(Exception e){
out.println("无法打开");
}

81,092

社区成员

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

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