100分能帮我看看错在那了吗?顶者有分!!!
源码如下
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=eshopDB";
String user="sa";
String password="dba";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt =conn.createStatement();
String sql="select * from ProductClass";
ResultSet rs = stmt.executeQuery(sql);
%>
<table>
<% while(rs.next()) { %>
<tr>
<td width="70" colspan="2">
<a href="hello.jsp?ID=<%=rs.getString("ClassID")%>"><%=rs.getString("ClassName")%></a>
<%}%>
</td>
</tr>
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+<%=rs.getString("ClassID")%>+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
<% while(m_rs.next()) { %>
<tr>
<td width="70">
<a href="hello.jsp?ID=<%=m_rs.getString("CategoryID")%>"><%=rs.getString("CategoryName")%></a>
<%if(m_rs.next()){%>
</td>
<td width="70"><a href="hello.jsp?ID=<%=m_rs.getString("CategoryID")%>"><%=m_rs.getString("CategoryName")%></a>
<%}%>
</td>
</tr>
<%}%>
</table>
错误信息如下:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 28 in the jsp file: /menu_3.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\infosite\org\apache\jsp\menu_005f3_jsp.java:84: illegal start of expression
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+<%=rs.getString("ClassID")
^
An error occurred at line: 32 in the jsp file: /menu_3.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\infosite\org\apache\jsp\menu_005f3_jsp.java:89: cannot resolve symbol
symbol : variable m_rs
location: class org.apache.jsp.menu_005f3_jsp
while(m_rs.next()) {
^
An error occurred at line: 35 in the jsp file: /menu_3.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\infosite\org\apache\jsp\menu_005f3_jsp.java:94: cannot resolve symbol
symbol : variable m_rs
location: class org.apache.jsp.menu_005f3_jsp
out.print(m_rs.getString("CategoryID"));
^
An error occurred at line: 36 in the jsp file: /menu_3.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\infosite\org\apache\jsp\menu_005f3_jsp.java:100: cannot resolve symbol
symbol : variable m_rs
location: class org.apache.jsp.menu_005f3_jsp
if(m_rs.next()){
^
An error occurred at line: 38 in the jsp file: /menu_3.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\infosite\org\apache\jsp\menu_005f3_jsp.java:104: cannot resolve symbol
symbol : variable m_rs
location: class org.apache.jsp.menu_005f3_jsp
out.print(m_rs.getString("CategoryID"));
^
An error occurred at line: 38 in the jsp file: /menu_3.jsp
Generated servlet error:
C:\Tomcat 5.0\work\Catalina\localhost\infosite\org\apache\jsp\menu_005f3_jsp.java:107: cannot resolve symbol
symbol : variable m_rs
location: class org.apache.jsp.menu_005f3_jsp
out.print(m_rs.getString("CategoryName"));
^
6 errors
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:332)
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:412)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
问题点数:100、回复次数:33Top
1 楼leon528()回复于 2006-02-27 14:40:56 得分 5
upTop
2 楼leon528()回复于 2006-02-27 14:43:38 得分 0
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+<%=rs.getString("ClassID")%>+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
应该为
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+rs.getString("ClassID")+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
Top
3 楼xidu007(我老婆无为呢?)回复于 2006-02-27 14:48:00 得分 0
改了出现这种错误
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: [Microsoft][SQLServer JDBC Driver]Invalid operation for the current cursor position.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.menu_005f3_jsp._jspService(menu_005f3_jsp.java:122)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]Invalid operation for the current cursor position.
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.validateCursorPosition(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.getString(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.getString(Unknown Source)
org.apache.jsp.menu_005f3_jsp._jspService(menu_005f3_jsp.java:83)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
Top
4 楼pigengler(en)回复于 2006-02-27 14:52:12 得分 5
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+“----this <%”=rs.getString("ClassID")“%>-----this”+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
<%%>里面需要再嵌套<%%>吗?Top
5 楼infowain(infowain)回复于 2006-02-27 14:55:43 得分 0
<%if(m_rs.next()){%> 这一句应该不需要了
因为你前面已经判断了 <% while(m_rs.next()) { %>
Top
6 楼spiritsl(梦雨心蓝)回复于 2006-02-27 14:58:07 得分 5
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
改为:Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver");
应该可以了Top
7 楼xidu007(我老婆无为呢?)回复于 2006-02-27 14:59:26 得分 0
以改成现在这样:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=eshopDB";
String user="sa";
String password="dba";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt =conn.createStatement();
String sql="select * from ProductClass";
ResultSet rs = stmt.executeQuery(sql);
%>
<table>
<% while(rs.next()) { %>
<tr>
<td width="120" colspan="2">
<a href="hello.jsp?ID=<%=rs.getString("ClassID")%>"><%=rs.getString("ClassName")%></a>
<%}%>
</td>
</tr>
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+rs.getString("ClassID")+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
<% while(m_rs.next()) { %>
<tr>
<td width="70">
<a href="hello.jsp?ID=<%=m_rs.getString("CategoryID")%>"><%=rs.getString("CategoryName")%></a>
<%if(m_rs.next()){%>
</td>
<td width="70"><a href="hello.jsp?ID=<%=m_rs.getString("CategoryID")%>"><%=m_rs.getString("CategoryName")%></a>
<%}%>
</td>
</tr>
<%}%>
</table>
错误信息如下:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: [Microsoft][SQLServer JDBC Driver]Invalid operation for the current cursor position.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.menu_005f3_jsp._jspService(menu_005f3_jsp.java:123)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]Invalid operation for the current cursor position.
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.validateCursorPosition(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.getString(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.getString(Unknown Source)
org.apache.jsp.menu_005f3_jsp._jspService(menu_005f3_jsp.java:84)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Top
8 楼jxhm3812885()回复于 2006-02-27 15:07:45 得分 0
[原创]免费提供短信平台二次开发包,支持java,linux,asp,c#,vb,vc,dephi,.net
西门子3506手机 一个
USB数据线 一条
单发、群发软件 一套
二次开发包 一套
驱动程序 一套
直接USB供电 无需电池
超值超低价,仅350元/每套
采用国际名牌西门子原装手机改造,比国内生产的短信猫稳定可靠,开机、发送、接收均液晶提示,
各种状态一目了然,每小时至少发送720条。赠送的群发软件性能卓越,市面价格500元以上,二次开发包
支持ACP JAVA VB VC C# LINUX ,接口十分丰富开发包市场价500元以上,现在全部在一起只需要350元,
十分超值,存货有限,先订购先贷。我公司为了顾客购买方便特建立视频购物体验,体验中心QQ号:
200891335。可以远程选货、验货 。
远程选货、验货。
选货:通过QQ视频,你可以看到现有的存货,选择中意产品
验货:在QQ视频下,客服人员用你选中的“短信猫”即时向你发送一条短信,加以确认。
批量订购价格更优惠。
关系电话:07918108720
QQ:200891335
email:zengcomputer@jx163.com
介绍页面:http://www.353535.cn/dxm.jspTop
9 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-02-27 15:11:27 得分 5
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+rs.getString("ClassID")+"'";
你的第一个rs已经到来最后为什么这里rs.getString("ClassID") 还有这个操作呢
Top
10 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-02-27 15:14:45 得分 5
这样改吧
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=eshopDB";
String user="sa";
String password="dba";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt =conn.createStatement();
String sql="select * from ProductClass";
ResultSet rs = stmt.executeQuery(sql);
String id = null ;
%>
<table>
<% while(rs.next()) {
<%id = rs.getString("ClassID");%>
%>
<tr>
<td width="120" colspan="2">
<a href="hello.jsp?ID=<%=rs.getString("ClassID")%>"><%=rs.getString("ClassName")%></a>
<%}%>
</td>
</tr>
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+rs.getString("ClassID")+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
<% while(m_rs.next()) { %>
<tr>
<td width="70">
<a href="hello.jsp?ID=<%=m_rs.getString("CategoryID")%>"><%=rs.getString("CategoryName")%></a>
<%if(m_rs.next()){%>
</td>
<td width="70"><a href="hello.jsp?ID=<%=m_rs.getString("CategoryID")%>"><%=m_rs.getString("CategoryName")%></a>
<%}%>
</td>
</tr>
<%}%>
</table>
//Top
11 楼interpb(曾曾胡,深怕情多累美人!)回复于 2006-02-27 15:15:56 得分 0
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+id+ "'";
不好意思sql改成这样Top
12 楼leon528()回复于 2006-02-27 15:28:35 得分 5
<% while(m_rs.next()) { %>
<tr>
<td width="70">
<a href="hello.jsp?ID=<%=m_rs.getString("CategoryID")%>"><%=rs.getString("CategoryName")%></a>
<%if(m_rs.next()){%>
</td>
<td width="70"><a href="hello.jsp?ID=<%=m_rs.getString("CategoryID")%>"><%=m_rs.getString("CategoryName")%></a>
<%}%>
</td>
</tr>
<%}%>
这一段好像有问题,你屏蔽掉看看会不会报错先,你要学会调试代码呀Top
13 楼diy8187(雞狗豬驢)回复于 2006-02-27 15:30:23 得分 5
你的sqlserver都没有连接都有问题,最好先单独测试一下.Top
14 楼bitou(大鹏一日同风起,扶摇直上九万里)回复于 2006-02-27 15:58:18 得分 5
万能的楼主啊怎么不好好检查下代码
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+<%=rs.getString("ClassID")%>+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
连续使用两个JSP表达式<%<%,
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+rs.getString("ClassID")+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
建议用JSP编辑器吧,代码错误比较容易看出来
Top
15 楼jacky_hn(初学者)回复于 2006-02-27 16:43:43 得分 5
楼上!
建议用rs.getString(index)用字段序列号,不用rs.getString("字段名")
Top
16 楼xidu007(我老婆无为呢?)回复于 2006-02-27 19:25:05 得分 0
upTop
17 楼sonyejin(Neverwinter Nights 2)回复于 2006-02-27 20:13:36 得分 5
脚本符合:<%和%>使用有误
看的我头昏,最好的办法还是你自己在编辑器里调试Top
18 楼hui_feng(盘桃2)回复于 2006-02-27 23:06:22 得分 5
检查一下代码,应该可以解决的。Top
19 楼panzi667(迅雷免费电影下载社区http://www.woyaola.net)回复于 2006-02-28 00:16:19 得分 2
UPTop
20 楼Eddie005(♂) №.零零伍 (♂)回复于 2006-02-28 08:41:12 得分 2
顶~ 接分~Top
21 楼panzi667(迅雷免费电影下载社区http://www.woyaola.net)回复于 2006-02-28 08:58:54 得分 2
UPTop
22 楼feiying127(飞影)回复于 2006-02-28 09:02:08 得分 2
顶Top
23 楼flashxue01(冰海浪子)回复于 2006-02-28 09:31:54 得分 2
给个建议,你最好是把数据库访问封装都javaBean里面。这样就不会显得那么混乱,也更容易定位错误。Top
24 楼scottwhb()回复于 2006-02-28 09:40:09 得分 5
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+<%=rs.getString("ClassID")%>+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
改成:
<%
String strClassID=rs.getString("ClassID");
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+strClassID+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
祝你好运!Top
25 楼lydvqq(碧水情缘♀黑哥)回复于 2006-02-28 10:07:16 得分 5
!!!!
<% while(rs.next()) { %>
<tr>
<td width="120" colspan="2">
<a href="hello.jsp?ID=<%=rs.getString("ClassID")%>"><%=rs.getString("ClassName")%></a>
<%}%>
</td>
</tr>
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+rs.getString("ClassID")+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
在这一句,上面一个while(rs.next())已经把rs指到最后一条EOF的字录.你在下面再用rs.getString("ClassID")就会有问题了.不然你先用rs.first()等试下Top
26 楼mlnancy(泡泡)回复于 2006-02-28 10:09:58 得分 5
upTop
27 楼eishen(飞翔)(学无止境)回复于 2006-02-28 14:16:43 得分 5
接分来Top
28 楼wzd268(九霄之鹏)回复于 2006-02-28 14:56:20 得分 5
UPTop
29 楼peter_zha()回复于 2006-02-28 14:59:26 得分 5
顶一下,哈哈Top
30 楼superman421(38度的雪)回复于 2006-02-28 15:34:38 得分 5
too langTop
31 楼balance9(穷人)回复于 2006-02-28 16:01:28 得分 0
看得晕,
用编译器高调试一下吧,接分Top
32 楼kyokk2005(只能ABC)回复于 2006-02-28 18:12:42 得分 0
结分 啊///Top
33 楼s_ants520()回复于 2006-02-28 20:17:05 得分 0
/\
up
Top




