回 帖 发 新 帖 刷新版面

主题:一个jsp连接sql例程问题

一个jsp连接sql例程问题
初学jsp。在网上下个例程:testsqlserver.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%> 
<%@ page import="java.sql.*"%> 
<html> 
<body> 
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newIn

stance(); 
String 

url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdb"; 
//jspdb为你的数据库的 
String user="sa"; 
String password="sa"; 
Connection conn= DriverManager.getConnection(url,user,password); 
Statement 

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.C

ONCUR_UPDATABLE); 
String sql="select * from use"; 
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 /testsqlserver.jsp at line 5

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


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:408)
    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)


root cause 

javax.servlet.ServletException: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:855)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:784)
    org.apache.jsp.testsqlserver_jsp._jspService(testsqlserver_jsp.java:99)
    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:384)
    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)


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(Unknown Source)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Unknown Source)
    org.apache.jsp.testsqlserver_jsp._jspService(testsqlserver_jsp.java:58)
    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:384)
    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)


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

是什么原因?

回复列表 (共4个回复)

沙发

我已经安装了jdbc驱动,并在环境变量中写了:.;%JAVA_HOME%\lib;d:\java\jdk\lib\tools.jar;d:\java\jdk\lib\dt.jar;D:\Tomcat 6.0\lib\servlet-api.jar;d:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;

我是初学者,还需要其它设置吗?是否还需要配置ODBC数据源????


板凳

http://blog.chinaunix.net/u/21684/showart_270377.html
看看这篇文章。
不明白,email给我!

3 楼

没有用例外语句呀,try{}catch()对。

4 楼

查看一下msbase.jar里有没有这个类:com.microsoft.jdbc.sqlserver.SQLServerDriver。
将如果有,把这个JAR放到%java_home%\jre\lib\ext或系统环境变量里,然后重新启动电脑
或放到WEB-INF\LIB里然后重新启动TOMCAT。

我来回复

您尚未登录,请登录后再回复。点此登录或注册