读书人

jsp连接sql server数据库报错,该如何处

发布时间: 2012-01-08 22:48:50 作者: rapoo

jsp连接sql server数据库报错
org.apache.jasper.JasperException: com.microsoft.jdbc.sqlserver.SQLServerDriver
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

javax.servlet.ServletException: com.microsoft.jdbc.sqlserver.SQLServerDriver
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.link_jsp._jspService(org.apache.jsp.link_jsp:120)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:127)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:65)
java.lang.ClassLoader.loadClassInternal(Unknown Source)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
org.apache.jsp.link_jsp._jspService(org.apache.jsp.link_jsp:76)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

应该怎么改呀?
我的连接代码是:
<%@ page language= "java " import= "java.util.*,java.sql.* " pageEncoding= "GB2312 "%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+ ":// "+request.getServerName()+ ": "+request.getServerPort()+path+ "/ ";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN ">
<html>
<head>
<base href= " <%=basePath%> ">

<title> My JSP 'link.jsp ' starting page </title>

<meta http-equiv= "pragma " content= "no-cache ">
<meta http-equiv= "cache-control " content= "no-cache ">
<meta http-equiv= "expires " content= "0 ">
<meta http-equiv= "keywords " content= "keyword1,keyword2,keyword3 ">
<meta http-equiv= "description " content= "This is my page ">


<!--
<link rel= "stylesheet " type= "text/css " href= "styles.css ">
-->

</head>

<body>

<%
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();

String url= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test ";

String user= "sa ";

String password= " ";

Connection conn= DriverManager.getConnection(url,user,password);

Statement stmt=conn.createStatement();

String sql= "select * from test ";

ResultSet rs=stmt.executeQuery(sql);

while(rs.next())
{
out.println( " <table> ");
out.println( " <tr> ");
out.println( " <td> "+rs.getString( "id ")+ " </td> ");
out.println( " <td> "+rs.getString( "password ")+ " </td> ");
out.println( " </tr> ");
out.println( " </table> ");
}

out.print( "数据库操作成功,恭喜你 ");

rs.close();

stmt.close();

conn.close();
%>

</body>
</html>


[解决办法]
直连的三个.jar文件加到工程里了么?
[解决办法]
sqlserver JDBC驱动包的问题,你看你有没有放再lib目录下
[解决办法]
最好别用微软的那个jdbc啊 很垃圾的
[解决办法]
你到这里去下个补丁(sql2ksp4)http://www.itmhu.cn/soft/8/80/2007/200702132586.html
记住解压了要安装才可以.

读书人网 >Java Web开发

热点推荐