高手看看这段代码错在哪里?
1、先建立一个JDBConnection类:
package com;import java.sql.*;public class JDBConnection //构造方法,初始化
{ private Connection conn; //连接对象
private String accessdriver; //保存Access驱动程序字符串
private String accessURL; //保存Access连接字符串 public JDBConnection()
{
//Access驱动程序
accessdriver = "sun.jdbc.odbc.JdbcOdbcDriver";
//连接字符串
accessURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
conn = null;
} //该方法从参数得到数据库路径,并加到连接字符串后面,然后再建立连接
public Connection getConnection(String dbpath){
try{
accessURL=accessURL+dbpath;
Class.forName(accessdriver);
conn = DriverManager.getConnection(accessURL);
}catch(Exception e){
System.out.println("操作数据库出错,请仔细检查");
System.err.println(e.getMessage());
}
return conn;
}
//关闭数据库连接
public void close()
{
try{
//rs.close();
//stmt.close();
conn.close();
}catch(SQLException sqlexception){
sqlexception.printStackTrace();
}
}
}
2、在index.jsp页面调用如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.util.*"%>
<jsp:useBean id="conn" scope="page" class="com.JDBConnection"/>
<%
String dbpath="/DataBase/db1.mdb"; //数据库的路径,请自行修改
Connection cnn =conn.getConnection(application.getRealPath(dbpath));
Statement stmt=cnn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="select * from about";
ResultSet rs1=stmt.executeQuery(sql);
while(rs1.next())
{
String s=rs1.getString(1);//看准你的字段是不是字符型,不然就不能用getString,根据字段类使用getBoolean等等
out.print(s+"<br>");
} %>
运行异常:org.apache.jasper.JasperException: /admin/index.jsp(3,0) The value for the useBean class attribute com.JDBC is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1178)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1117)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2222)
org.apache.jasper.compiler.Node$Root.accept(Node.java:457)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
org.apache.jasper.compiler.Generator.generate(Generator.java:3324)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
1、先建立一个JDBConnection类:
package com;import java.sql.*;public class JDBConnection //构造方法,初始化
{ private Connection conn; //连接对象
private String accessdriver; //保存Access驱动程序字符串
private String accessURL; //保存Access连接字符串 public JDBConnection()
{
//Access驱动程序
accessdriver = "sun.jdbc.odbc.JdbcOdbcDriver";
//连接字符串
accessURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
conn = null;
} //该方法从参数得到数据库路径,并加到连接字符串后面,然后再建立连接
public Connection getConnection(String dbpath){
try{
accessURL=accessURL+dbpath;
Class.forName(accessdriver);
conn = DriverManager.getConnection(accessURL);
}catch(Exception e){
System.out.println("操作数据库出错,请仔细检查");
System.err.println(e.getMessage());
}
return conn;
}
//关闭数据库连接
public void close()
{
try{
//rs.close();
//stmt.close();
conn.close();
}catch(SQLException sqlexception){
sqlexception.printStackTrace();
}
}
}
2、在index.jsp页面调用如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.util.*"%>
<jsp:useBean id="conn" scope="page" class="com.JDBConnection"/>
<%
String dbpath="/DataBase/db1.mdb"; //数据库的路径,请自行修改
Connection cnn =conn.getConnection(application.getRealPath(dbpath));
Statement stmt=cnn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="select * from about";
ResultSet rs1=stmt.executeQuery(sql);
while(rs1.next())
{
String s=rs1.getString(1);//看准你的字段是不是字符型,不然就不能用getString,根据字段类使用getBoolean等等
out.print(s+"<br>");
} %>
运行异常:org.apache.jasper.JasperException: /admin/index.jsp(3,0) The value for the useBean class attribute com.JDBC is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1178)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1117)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2222)
org.apache.jasper.compiler.Node$Root.accept(Node.java:457)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166)
org.apache.jasper.compiler.Generator.generate(Generator.java:3324)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
1、JDBC类路径:src/com/JDBC.java
2、数据库路径:Database/db1.mdb
3、index.jsp路径:admin/index.jsp
引用的class 属性是无效的。
<jsp:useBean id="conn" scope="page" class="com.JDBConnection"></jsp:userBean>是不是类的路径错啦!!
或是标签用错了。
The value for the useBean class attribute com.JDBC is invalid.
引用路径错了
为什么不直接导入类 引用
: The value for the useBean class attribute com.JDBC is invalid.
你JSP中明明引用的是com.JDBConnection
com中根本没这个类当然会错啦,建议你关闭tomcat,重新发布后重启测试。
然后,记得使用后关闭结果集和Statement。