为什么JSP 连接数据库 失败 ??

fsqman 2007-12-04 05:42:10
我已经把三个数据库驱动文件都放到LIB了,把LIB目录拷贝到WEB-INF

JSP 程序如下:

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="1";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from jobs";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>


错误如下:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 6

3: <html>
4: <body>
5: <%
6: Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
7: String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
8: //pubs为你的数据库的
9: String user="sa";


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)


root cause

javax.servlet.ServletException: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.index_jsp._jspService(index_jsp.java:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)


root cause

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:169)
org.apache.jsp.index_jsp._jspService(index_jsp.java:59)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.

...全文
145 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacksonlei 2007-12-05
  • 打赏
  • 举报
回复
是不是变量的存在范围的问题?编译了下面这个语句之后
Connection conn= DriverManager.getConnection(url,user,password);
conn变量 可能就不存在了,所以报错。
fsqman 2007-12-05
  • 打赏
  • 举报
回复
我已经把三个数据库驱动文件都放到 %JAVA_HOME%\jre\lib\ext\ 下了,但现在出错如下 :


org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 11

8: //pubs为你的数据库的
9: String user="sa";
10: String password="1";
11: Connection conn= DriverManager.getConnection(url,user,password);
12: Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
13: String sql="select * from jobs";
14: ResultSet rs=stmt.executeQuery(sql);
hebwyb 2007-12-05
  • 打赏
  • 举报
回复
打sp3补丁,然后三个文件要拷贝到/tomcat/common/lib/下.三个补丁的路径要加到classpath中..
fsqman 2007-12-05
  • 打赏
  • 举报
回复
打了 SP4 补丁,就可以了!
every888 2007-12-04
  • 打赏
  • 举报
回复
如果你的数据库没问题的话可以试着把jar包考到服务器程序的jar包文件夹中试试,应该就没问题了
badboy_blue 2007-12-04
  • 打赏
  • 举报
回复
具体是
%JAVA_HOME%\jre\lib\ext\msbase.jar;
%JAVA_HOME%\jre\lib\ext\mssqlserver.jar;
%JAVA_HOME%\jre\lib\ext\msutil.jar

%JAVA_HOME%\是你的JDK的路径,那三个文件放在%JAVA_HOME%\jre\lib\ext下
然后把上面的加入classpath里就行了```

cqulilei 2007-12-04
  • 打赏
  • 举报
回复
没找到JDBC驱动
badboy_blue 2007-12-04
  • 打赏
  • 举报
回复
除了把JAR文件拷贝到WEB-INF/lib下
还要在环境变量中classpath中配置那三个JAR文件的路径``

81,092

社区成员

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

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