大家好,我有个问题,搞了我好几天!
数据库我用SQL Server 2000 用纯JDBC连接数据库
SP4我也装了,SQL驱动也装了!
可还是出现以下问题?javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.testMssql_jsp._jspService(testMssql_jsp.java:99)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
java.sql.DriverManager.getConnection(DriverManager.java:525)
java.sql.DriverManager.getConnection(DriverManager.java:171)
org.apache.jsp.testMssql_jsp._jspService(testMssql_jsp.java:71)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

解决方案 »

  1.   

    首先请确认数据库服务已经启动,其次,请仔细检查你的URl
      

  2.   

    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%>
    <html>
    <body>
    以下是从Ms sql server数据库读取的数据:<hr>
    <table border=1>
    <tr><td>id</td><td>书名</td><td>出版社</td><td>价格</td></tr>
    <%! String trans(String chi)
    {
                   String result = null;
                   byte temp [];
                   try
                   {
                           temp=chi.getBytes("iso-8859-1");
                          result = new String(temp);
                    }
                    catch(UnsupportedEncodingException e)
                    {
                            System.out.println (e.toString());
                    }
    return result;
    }
    %>
    <%   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
       Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev","sa","");
       Statement stmt=con.createStatement();
        ResultSet rst=stmt.executeQuery("select * from book;");
        while(rst.next())
        {
        out.println("<tr>");
        out.println("<td>"+trans(rst.getString("bookId"))+"</td>");
        out.println("<td>"+trans(rst.getString("bookName"))+"</td>");
        out.println("<td>"+trans(rst.getString("publisher"))+"</td>");
        out.println("<td>"+rst.getFloat("price")+"</td>");
        out.println("</tr>");
        }
        //关闭连接、释放资源
        rst.close();
        stmt.close();
        con.close();
        %>    
    </table>
    </body>
    </html>