帮我看看我的问题在哪里?jsp

publicom20 2009-12-31 10:27:54
<%
Connection con = null;
Statement sm = null;
ResultSet rs = null;
InitialContext ctx=new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
con=ds.getConnection();
sm=con.createStatement();
rs = sm.executeQuery("select * from wen ");

while(rs.next()) {
String s_time = rs.getString("time");
int s_number =Integer.parseInt(rs.getString("number"));
{
if(s_number==1){
String s_one = rs.getString("wendu");
}
else if(s_number==2){
String s_two = rs.getString("wendu");
}
else if(s_number==3){
String s_three = rs.getString("wendu");
}
else if(s_number==4){
String s_four = rs.getString("wendu");
}
else if(s_number==5){
String s_five = rs.getString("wendu");
}
else if(s_number==6){
String s_six = rs.getString("wendu");
}
else if(s_number==7){
String s_seven = rs.getString("wendu");
}
else if(s_number==8){
String s_eight = rs.getString("wendu");
}
else if(s_number==9){
String s_nine = rs.getString("wendu");
}
else {
String s_ten = rs.getString("wendu");
}
}
%>
<tr>
<td width="110" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_time%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_one%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_two%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_three%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_four%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_five%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_six%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_seven%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_eight%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_nine%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_ten%></td>
</tr>
<%
}
%>
...全文
90 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
publicom20 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yao0220 的回复:]
Java code<tr><td width="110" height="30" align="center" valign="middle"
bordercolor="#000000"class="STYLE22 STYLE25"><%=s_time%></td><td width="82" align="center" valign="middle" bordercolo?-
[/Quote]谢谢大哥
yao0220 2009-12-31
  • 打赏
  • 举报
回复

<tr>
<td width="110" height="30" align="center" valign="middle"
bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_time%>
</td>
<td width="82" align="center" valign="middle" bordercolor="#000000"
class="STYLE22 STYLE25"> <%=s_number==1?str:"" %>
</td>
<td width="82" align="center" valign="middle" bordercolor="#000000"
class="STYLE22 STYLE25"> <%=s_number==2?str:""%>
</td>
<td width="82" align="center" valign="middle" bordercolor="#000000"
class="STYLE22 STYLE25"> <%=s_number==3?str:""%>
</td>
<td width="82" align="center" valign="middle" bordercolor="#000000"
class="STYLE22 STYLE25"> <%=s_number==4?str:""%>
</td>
<td width="82" align="center" valign="middle" bordercolor="#000000"
class="STYLE22 STYLE25"> <%=s_number==5?str:""%>
</td>
<td width="82" align="center" valign="middle" bordercolor="#000000"
class="STYLE22 STYLE25"> <%=s_number==6?str:""%>
</td>
<td width="82" align="center" valign="middle" bordercolor="#000000"
class="STYLE22 STYLE25"> <%=s_number==7?str:""%>
</td>
<td width="82" align="center" valign="middle" bordercolor="#000000"
class="STYLE22 STYLE25"> <%=s_number==8?str:""%>
</td>
<td width="82" align="center" valign="middle" bordercolor="#000000"
class="STYLE22 STYLE25"> <%=s_number==9?str:""%>
</td>
<td width="82" align="center" valign="middle" bordercolor="#000000"
class="STYLE22 STYLE25"> <%=s_number==10?str:""%>
</td>
</tr>
publicom20 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yao0220 的回复:]
1、连接数据库的操作最好写在类里,相关数据库的操作方法也放在类里,这样页面传入sql语句获得结果集进行操作就可以了
2、尽量少创建变量,而且避免在循环里创建
3、我个人建议获得rs后,最好判断一下是否为空,再进行下一步操作
4、td里的高度设置只在第一个设置就可以了,其他的可以去掉,页面代码越少,访问就越快,尽量减少垃圾代码
Java code<%
InitialContext ctx=new InitialContext();
DataSource ds= (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
Connection conn= ds.getConnection();if(conn==null){
out.print("未获得数据连接");return;
}
PreparedStatement ps=null;
ResultSet rs=null;try{
ps= conn.createStatement();
rs= ps.executeQuery("select * from wen");if(rs!=null){
String s_time="",str="";int s_number=0;while(rs.next()) {
s_time= rs.getString("time");
s_number= Integer.parseInt(rs.getString("number"));
str= rs.getString("wendu");%><tr><td width="110" height="30" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_time%></td><td width="82" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_number==1?str:""%></td><td width="82" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_number==2?str:""%></td><td width="82" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_number==3?str:""%></td><td width="82" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_number==4?str:""%></td><td width="82" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_number==5?str:""%></td><td width="82" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_number==6?str:""%></td><td width="82" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_number==7?str:""%></td><td width="82" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_number==8?str:""%></td><td width="82" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_number==9?str:""%></td><td width="82" align="center" valign="middle" bordercolor="#000000"class="STYLE22 STYLE25"><%=s_number==10?str:""%></td></tr><%
}
}
}catch(Exception e){
e.printStackTrace();
}finally{if (rs!=null) {try {
rs.close();
}catch (SQLException e) {
e.printStackTrace();
}
rs=null;
}if (ps!=null) {try {
ps.close();
}catch (SQLException e) {
e.printStackTrace();
}
ps=null;
}if(con!=null){
conn.close();
conn=null;
}
}%>
[/Quote]
大哥,小弟要拜你为师
yao0220 2009-12-31
  • 打赏
  • 举报
回复
1、连接数据库的操作最好写在类里,相关数据库的操作方法也放在类里,这样页面传入sql语句获得结果集进行操作就可以了
2、尽量少创建变量,而且避免在循环里创建
3、我个人建议获得rs后,最好判断一下是否为空,再进行下一步操作
4、td里的高度设置只在第一个设置就可以了,其他的可以去掉,页面代码越少,访问就越快,尽量减少垃圾代码

<%
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
Connection conn = ds.getConnection();
if(conn==null){
out.print("未获得数据连接");
return;
}
PreparedStatement ps = null;
ResultSet rs = null;
try{
ps = conn.createStatement();
rs = ps.executeQuery("select * from wen");
if(rs!=null){
String s_time = "",str = "";
int s_number = 0;
while(rs.next()) {
s_time = rs.getString("time");
s_number = Integer.parseInt(rs.getString("number"));
str = rs.getString("wendu");
%>
<tr>
<td width="110" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_time%> </td>
<td width="82" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_number==1?str:"" %> </td>
<td width="82" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_number==2?str:""%> </td>
<td width="82" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_number==3?str:""%> </td>
<td width="82" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_number==4?str:""%> </td>
<td width="82" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_number==5?str:""%> </td>
<td width="82" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_number==6?str:""%> </td>
<td width="82" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_number==7?str:""%> </td>
<td width="82" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_number==8?str:""%> </td>
<td width="82" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_number==9?str:""%> </td>
<td width="82" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"> <%=s_number==10?str:""%> </td>
</tr>
<%
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
ps = null;
}
if(con!=null){
conn.close();
conn = null;
}
}
%>
kx00450 2009-12-31
  • 打赏
  • 举报
回复
把定义的10个变量放到while外面
dahaidao 2009-12-31
  • 打赏
  • 举报
回复
你一点一点调一下。不太容易一下子看出来。
wflyxiaonian 2009-12-31
  • 打赏
  • 举报
回复
出错不是这吧 s_ten没定义 是前面取值的问题
publicom20 2009-12-31
  • 打赏
  • 举报
回复
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_one%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_two%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_three%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_four%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_five%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_six%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_seven%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_eight%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_nine%></td>
<td width="82" height="30" align="center" valign="middle" bordercolor="#000000" class="STYLE22 STYLE25"><%=s_ten%></td>

出错在这几行
publicom20 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiesisi3 的回复:]
这么多重复代码,自己看着不烦吗。
[/Quote]我想给大家说详细点
publicom20 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 kaoh1631 的回复:]
出错信息 贴出来
[/Quote]
An error occurred at line: 265 in the jsp file: /ceshi.jsp
Generated servlet error:
s_ten cannot be resolved


at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
xiesisi3 2009-12-31
  • 打赏
  • 举报
回复
这么多重复代码,自己看着不烦吗。
VilenZYP 2009-12-31
  • 打赏
  • 举报
回复
这种代码,真是个杯具。
Thinking_In_IT 2009-12-31
  • 打赏
  • 举报
回复
出错信息 贴出来

81,092

社区成员

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

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