出错提示为:
org.apache.jasper.JasperException: Unable to compile class for JSPD:\tomcat\work\localhost_8080%2Fexamples\_0002fforum_00031_0002fdatabase_0002ejspdatabase_jsp_0.java:89: ??????conn
conn = DriverManager.getConnection("jdbc:odbc:forum","sa","");
^
1 ???
org.apache.jasper.JasperException: Unable to compile class for JSPD:\tomcat\work\localhost_8080%2Fexamples\_0002fforum_00031_0002fdatabase_0002ejspdatabase_jsp_0.java:89: ??????conn
conn = DriverManager.getConnection("jdbc:odbc:forum","sa","");
^
1 ???
解决方案 »
- 拓展训练之感——自己写的第一篇感想
- u盘中毒杀不了
- jsp问题
- validate验证<html:multibox>标签问题
- POI读取EXCEL导入数据库(带源程序),导入到数据库的时候提示错误,请此方面的高手指点!在线等,急切!
- 诚心请教问题
- 请问如何判断是否存在session?
- 框架内表单提交的问题(高手进)
- 记录列表checkbox用了同一个name,value不同,提交时能否在下一页获得?
- 在线等待:Servlet图片路径问题
- java bean在jb5环境下的jsp页面中调用出错,急寻解决方法!!!
- jsp或servlet作mis太差,交互性不好,和c/s差多了,我感觉这种方案比较好:
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%> <%
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
try{
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
out.print("Connect to Database error: " + e.getMessage());
}try{
Connection conn = DriverManager.getConnection("jdbc:odbc:forum","sa",""); //******
}
catch(SQLException e){
out.print(e.toString());
}
}
catch (Exception e) {} %>
可我后面加上代码
Statement stmt=conn.createStatement(); String strSQL="SELECT * FROM users";
ResultSet rs=stmt.executeQuery(strSQL);
后程序又有问题,完整代码为:
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%> <%
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
try{
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
out.print("Connect to Database error: " + e.getMessage());
} try{
Connection conn = DriverManager.getConnection("jdbc:odbc:forum","sa","");
}
catch(SQLException e){
out.print(e.toString());
}
}
catch (Exception e) {}
Statement stmt=conn.createStatement(); String strSQL="SELECT * FROM users";
ResultSet rs=stmt.executeQuery(strSQL); %>
出错提示为:
Internal Servlet Error:org.apache.jasper.JasperException: Unable to compile class for JSPD:\tomcat\work\localhost_8080%2Fexamples\_0002fforum_00031_0002fmenu_0002ejspmenu_jsp_17.java:99: ?????????conn
Statement stmt=conn.createStatement();
为什么?
Statement stmt=conn.createStatement();
String strSQL="SELECT * FROM users";
ResultSet rs=stmt.executeQuery(strSQL);
之前加一句
conn = DriverManager.getConnection("jdbc:odbc:forum","sa","");
试一试
try{
Connection conn = DriverManager.getConnection("jdbc:odbc:forum","sa","");
}
里
这样就省去那一句。
还有一个问题:我在上面代码后面加上:<%
while(rs.next())
{
%>
<A href="list.jsp?key=<%=rs.getString(1)%>"><%=rs.getString(1)%></A></TD></TR>
<%
}
rs.close();
stmt.close();
conn.close();
%>
不能通过,但是去掉 key=<%=rs.getString(1)%> 或改成 key=常数 就能通过, 为什么?
用rs.getInt()。
该用什么方法取得呢?
<%
String tempstr = "";
while(rs.next())
{
tempstr = rs.getString(1);
%>
<A href="list.jsp?key=<%=tempstr%>"><%=tempstr%></A>
<%
}
rs.close();
stmt.close();
conn.close();
%>try当中定义的变量离开了try就会失效--局部变量。 所以先把Connection conn在外面定义。