最近在学java,现在在调一个jsp的数据库的测试环境,弄了好几天还没弄好,现在是一头雾水。
jdk的版本号:jdk-1_5_0_04-windows-i586-p.exe   tomcat是:4.1.31,数据库是sqlserver2000
jdbc是2.3,
jdk配置好了,tomcat启动后也可以使用,可是就jdbc连接数据库测试通不过.请高手指点。最好给我发配置文章。[email protected]

解决方案 »

  1.   

    这个好说。
    首先你先看看返回的错误,异常,来确定是驱动的问题的,还是网络的问题,权限等等。你根据这些资料,反馈的异常什么的 ,去baidu上找找资料。
    一定有的。
      

  2.   

    你要throw个exception我们才好catch它
      

  3.   

    这个是报错信,大家帮忙看看
    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:498)
    at org.apache.jsp.testsql_jsp._jspService(testsql_jsp.java:75)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:595)
    root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
    at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at org.apache.jsp.testsql_jsp._jspService(testsql_jsp.java:50)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:595)
      

  4.   

    这是程序代码
    <%@ 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=login"; 
    //login为你的数据库的 Connection conn= DriverManager.getConnection(url,"sa",""); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from T_USER"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%>
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%>
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html> 
      

  5.   

    从微软的网站上下载驱动程序:SQL Server 2000 For JDBC 驱动程序,在Google中随便搜索就有。   然后将它安装好。(比如安装目录是D:\SQLDriverForJDBC。)   然后必须将安装目录中的lib目录下三个jar文件:   msbase.jar,mssqlserver.jar,msutil.jar拷贝到Tomcat目录下common\lib目录下,之后,修改环境变量中的CLASSPATH,
    把SQL Server 2000 For JDBC 驱动程序安装目录下的
    D:\SQLDriverForJDBC\lib\msbase.jar;D:\SQLDriverForJDBC\lib\mssqlserver.jar;
    D:\SQLDriverForJDBC\msutil.jar;
    追加到CLASSPATH中去,修改后的CLASSPATH如下: CLASSPATH=D:\Java\bin;.;D:\Java\lib;D:\Java\lib\dt.jar;
    _D:\Java\lib\tools.jar;D:\LubeeTomcat\common\lib\servlet.jar;
    _D:\SQLDriverForJDBC\lib\msbase.jar;D:\SQLDriverForJDBC\lib\mssqlserver.jar;
    D:\SQLDriverForJDBC\msutil.jar    必须重新启动Tomcat!    这样做的目的是,jsp页面在编译过程中不会出现找不到sql server driver类库的问题  写一个简单的用来测试连接SQL Server 2000的JSP代码  <%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.*" contentType="text/html;charset=gb2312" %>
      <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="admin";
       Connection conn= DriverManager.getConnection(url,user,password);
       Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
       String sql="select job_id,job_desc from jobs";
       ResultSet rs=stmt.executeQuery(sql);
       while(rs.next()) { %>
        您的第一个字段内容为:<%=rs.getString(1)%><br>
        您的第二个字段内容为:<%=rs.getString(2)%><br>
      <% } %>
      <% out.print("数据库操作成功,恭喜你"); %>
      <% rs.close();
       stmt.close();
       conn.close();
      %>
      </body>
      </html> 将上面的JSP代码保存为sql_test.jsp,放在/Root目录下。  在地址中输入:http://localhost:8080/sql_test.jsp,如果全部配置成功的话,将显示如下:  您的第一个字段内容为:1
      您的第二个字段内容为:New Hire - Job not specified
      您的第一个字段内容为:2
      您的第二个字段内容为:Chief Executive Officer
      您的第一个字段内容为:3
      您的第二个字段内容为:Business Operations Manager
      您的第一个字段内容为:4
      您的第二个字段内容为:Chief Financial Officier
      您的第一个字段内容为:5
      您的第二个字段内容为:Publisher
      您的第一个字段内容为:6
      您的第二个字段内容为:Managing Editor
      您的第一个字段内容为:7
      您的第二个字段内容为:Marketing Manager
      您的第一个字段内容为:8
      您的第二个字段内容为:Public Relations Manager
      您的第一个字段内容为:9
      您的第二个字段内容为:Acquisitions Manager
      您的第一个字段内容为:10
      您的第二个字段内容为:Productions Manager
      您的第一个字段内容为:11
      您的第二个字段内容为:Operations Manager
      您的第一个字段内容为:12
      您的第二个字段内容为:Editor
      您的第一个字段内容为:13
      您的第二个字段内容为:Sales Representative
      您的第一个字段内容为:14
      您的第二个字段内容为:Designer
      数据库操作成功,恭喜你
      

  6.   

    不行呀,大家帮我看下吧,我看主要是这个问题:javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    jdbc问题,但我不知道怎么弄呀。高手快请剔教呀。