我网上下了很多jsp有连接数据库的网页,但是老是在连接数据库那段代码出错,我到asp300去下了jsp留言板实例,只要有连接数据库的都出错,我用的是Tomcat5.5的,开发软件用MyEclipse 5.5.1 GA,因为没有项目文件,所以 我把下下来的放在Apache Software Foundation\Tomcat 5.5\webapps目录下,然后用浏览器访问,只要有连接数据库的都会报错,没有连接数据库的不会报错,具体报错内容:
exception org.apache.jasper.JasperException: Exception in JSP: /conn.jsp:96: //加载驱动程序
7: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
8: //建立连接
9: Connection conn= DriverManager.getConnection(url);
10: // **** 数据库连接代码 结束 *********
11: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
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:803)
因为附件不能上传压缩包,所以给地址,不是做广告,别误会:
源代码下载地址:http://www.asp300.com/View/13/12125.html
exception org.apache.jasper.JasperException: Exception in JSP: /conn.jsp:96: //加载驱动程序
7: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
8: //建立连接
9: Connection conn= DriverManager.getConnection(url);
10: // **** 数据库连接代码 结束 *********
11: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
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:803)
因为附件不能上传压缩包,所以给地址,不是做广告,别误会:
源代码下载地址:http://www.asp300.com/View/13/12125.html
楼主【tiger222000】截止到2008-06-30 11:43:15的历史汇总数据(不包括此帖):
发帖数:1 发帖分:20
结贴数:0 结贴分:0
未结数:1 未结分:20
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
下面是对上面所有的回答:
我有启动sql server服务,和Monitor Tomcat
下面是所有的异常:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /conn.jsp:96: //加载驱动程序
7: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
8: //建立连接
9: Connection conn= DriverManager.getConnection(url);
10: // **** 数据库连接代码 结束 *********
11: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
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:803)
root cause javax.servlet.ServletException: [Microsoft][ODBC Microsoft Access Driver] '(未知的)'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
org.apache.jsp.index_jsp._jspService(index_jsp.java:345)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
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:803)
root cause java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] '(未知的)'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
org.apache.jsp.index_jsp._jspService(index_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
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:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.连接数据库的是由conn.jsp提供的,至于四楼的说还要弄数据源这个我就有点不明白了,不是只要像asp一样写个数据库连接的就行了,还要用到数据源吗?
还有谢谢各位了帮忙解答下,本人感激不尽啊
下面是对上面所有的回答:
我有启动sql server服务,和Monitor Tomcat
下面是所有的异常:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Exception in JSP: /conn.jsp:96: //加载驱动程序
7: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
8: //建立连接
9: Connection conn= DriverManager.getConnection(url);
10: // **** 数据库连接代码 结束 *********
11: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355)
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:803)
root cause javax.servlet.ServletException: [Microsoft][ODBC Microsoft Access Driver] '(未知的)'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:841)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774)
org.apache.jsp.index_jsp._jspService(index_jsp.java:345)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
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:803)
root cause java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] '(未知的)'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
org.apache.jsp.index_jsp._jspService(index_jsp.java:78)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
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:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.连接数据库的是由conn.jsp提供的,至于四楼的说还要弄数据源这个我就有点不明白了,不是只要像asp一样写个数据库连接的就行了,还要用到数据源吗?
还有谢谢各位了帮忙解答下,本人感激不尽啊
用jdbc桥连接,是不是要配置数据源啊!!!
我用的数据库是access,以下是是数据库连接代码,也就是那个conn.jsp的代码:<%@page import="java.sql.*"%>
<%String spath="data\data1.mdb"; //注意由网站根到文件的路径
String dbpath = application.getRealPath(spath); //转化成物理路径
//数据库连接字符串
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+dbpath;
//加载驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//建立连接
Connection conn= DriverManager.getConnection(url);
// **** 数据库连接代码 结束 *********
%>你所说的驱动是不是Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
关于数据源的配置问题,我还是有个疑问,jsp就不是像asp一样吗,给一个数据库连接的就可以了,还要配置数据源吗?
我一般的不用access数据库的,我一般都用sql server做数据库的,我之所以用access做数据库,是因为我只是想测试下数据库连接而已,因为我用jsp去连接sql,发现连接不了,所以下了个实例是用access去做连接,发现也连接不了,所以来问下为什么会出错,
String url=“jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=“+application.getRealPath(“/Data/ReportDemo.mdb“);
Connection conn = DriverManager.getConnection(url,““,“”);
Statement stmtNew=conn.createStatement() ;
access当然需要配置数据源了,你的String url明明写着是jdbc:odbc桥连接阿
这个路径找不到这个数据库。。
我把dbpath改成绝对路径依然出现同样的错误,还有,我的主目录名book,jsp文件是放在主目录名下的,而数据库是放在主目录名下的文件夹data里的,数据库就放在data里面,问题依然存在,再帮忙解决下吧回答12楼的:
谢谢你
public class AccessDB {
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:Driver={MicroSoft Access Driver *.mdb)};DBQ = Northwind.mdb";
String user = "";
String pwd = "";
Connection conn;
Statement stmt;
ResultSet rs;
public MyDB() {
try {
Class.forName(driver);
} catch (Exception e) {
System.out.println(e);
}
}
//创建不可滚动的连接
public void connect() {
try {
conn = DriverManager.getConnection(url,user,pwd);
stmt = conn.createStatement();
} catch (Exception e) {
System.out.println(e);
}
}
//创建可以滚动的连接
public void connect2() {
try {
conn = DriverManager.getConnection(url,user,pwd);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
} catch (Exception e) {
System.out.println(e);
}
}
//关闭连接
public void close() {
try {
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
System.out.println(e);
}
}
//查询语句
public ResultSet executeQuery(String sql) {
try {
if (stmt == null) {
connect();
}
rs = stmt.executeQuery(sql);
} catch (Exception e) {
System.out.println(e);
}
return rs;
}
}
你那个是jsp的还是java的,我看起来有点像java的 ,不是jsp数据库连接的啊,
如果改成Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 的话会出现新的错误:type Exception reportmessage 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:
JSP FileName:/conn.jsp
Java FileName:/C:/Program Files/Apache Software Foundation/Tomcat 5.5/work/Catalina/localhost/book//org/apache/jsp\index_jsp.javaAn error occurred at line: 2 in the jsp file: /conn.jsp
Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
1: <%@page import="java.sql.*"%>
2: <%String spath="data\data1.mdb"; //注意由网站根到文件的路径
3: String dbpath = application.getRealPath(spath); //转化成物理路径
4: //数据库连接字符串
5: String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+dbpath;
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:98)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:435)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
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:803)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.
还是有错误,请问各位还有帮点忙把它搞定下来吗
具体你的是什么问题 我不清楚, 贴点自己连接数据库的代码给你参考下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:sqlserver://localhost:1433;DatabaseName=jsptest";
//pubs为你的数据库的
String user="sa";
String password="776883";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from user1 ";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>这个是我测试数据库连接的 例子
驱动放在 项目下的 WEB-INF下的lib 目录
三个文件 名分别为 :
msbase.jar
mssqlserver.jar
msutil.jar