注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

因心造境 风云由我

丈夫生时会几时,安能蹀躞垂羽翼

 
 
 

日志

 
 

JSP无法连接Sqlserver,为什么呀  

2008-03-25 10:06:28|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

使用如下代码  
   
  <%@   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="";    
  Connection   conn=   DriverManager.getConnection(url,user,password);    
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);    
  String   sql="select   *   from   test";    
  ResultSet   rs=stmt.executeQuery(sql);    
  while(rs.next())   {%>    
  您的第一个字段内容为:<%=rs.getString(1)%>    
  您的第二个字段内容为:<%=rs.getString(2)%>    
  <%}%>    
  <%out.print("数据库操作成功,恭喜你");%>    
  <%rs.close();    
  stmt.close();    
  conn.close();    
  %>    
  </body>    
  </html>  
   
  提示错误  
   
  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.  
  org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:848)  
  org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)  
  org.apache.jsp.test_jsp._jspService(org.apache.jsp.test_jsp:86)  
  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:322)  
  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)  
  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)  
  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.test_jsp._jspService(org.apache.jsp.test_jsp:52)  
  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:322)  
  org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)  
  org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)  
  javax.servlet.http.HttpServlet.service(HttpServlet.java:802)  

如果你的系统是XP的话,就需要给sql   server装SP3的补丁,那样就能使用了。

 

JSP连接SQLserver2000   系统配置  
      第一步:----安装J2SDK:  
   
    到SUN官方站点(http://java.sun.com)下载J2SDK的安装文件:j2sdk-1_4_2_04-windows-i586-p.exe,下载之后安装好J2SDK;安装完之后,设置环境变量:我的电脑---属性---高级---环境变量;  
   
    选择---系统变量(S):  
     
    设置JAVA_HOME环境变量:  
   
    单击---新建,在变量名中输入:JAVA_HOME  
   
    在变量值中输入:D:\Java  
   
    (假设J2SDK安装在目录D:\Java下,反正就是J2SDK的安装目录。)  
   
    然后---确定,到此已经设置好JAVA_HOME环境变量。  
   
    设置CLASSPATH环境变量:  
   
    单击---新建,在变量名中输入:CLASSPATH  
   
    在变量值中输入:D:\Java\bin;.;D:\Java\lib;D:\Java\lib\dt.jar;D:\Java\lib\tools.jar  
   
    (中间的点号“.”和分号“;”必不可少。)  
   
    然后---确定,到此已经设置好CLASSPATH环境变量。  
   
    设置PATH环境变量:  
   
    单击---新建,在变量名中输入:PATH  
   
    在变量值中输入:D:\Java;.;D:\Java\bin  
   
    (中间的点号“.”和分号“;”必不可少。)  
   
    然后---确定,到此已经设置好JAVA_HOME环境变量。  
   
    三个环境变量设置好后,写一个简单的java程序来测试J2SDK是否已安装成功:  
   
    在D:\下新建一个目录test;然后写如下程序:   
        public class Test {   
    public static void main(String args[]) {   
      System.out.println("This is a test program.");   
     }   
    }    
   
    将上面的这段程序保存为文件名为Test.java的文件,保存在目录D:\test下。  
   
    然后打开命令提示符窗口,cd到你的test目录,然后键入下面的命令    
   
      javac Test.java   
      java Test   
   
    此时如果看到打印出来This is a test program.的话说明安装成功了,  
   
    如果没有打印出这句话,你需要仔细检查一下你的配置情况。   
   
    如果上面的J2SDK安装成功的话,接下来继续安装Tomcat:  
   
    第二步:----安装Tomcat:  
   
     到tomcat官方站点(http://www.apache.org/dist/jakarta/tomcat-4/)下载tomcat:  
   
     jakarta-tomcat-4.1.30.exe,下载之后安装。(比如安装在D:\Tomcat下。)  
   
     安装完之后,设置环境变量:我的电脑---属性---高级---环境变量;  
   
     选择---系统变量(S):  
   
     设置CATALINA_HOME环境变量:  
   
     单击---新建,在变量名中输入:CATALINA_HOME  
   
     在变量值中输入:D:\Tomcat  
   
     然后---确定,到此已经设置好CATALINA_HOME环境变量。  
   
     设置CATALINA_BASE环境变量:  
   
     单击---新建,在变量名中输入:CATALINA_BASE  
   
     在变量值中输入:D:\Tomcat  
   
     然后---确定,到此已经设置好CATALINA_BASE环境变量。  
   
     然后修改环境变量中的CLASSPATH,把Tomat安装目录下的common\lib下的servlet.jar追加到CLASSPATH中去,  
   
     修改后的CLASSPATH如下:   
   
  CLASSPATH=D:\Java\bin;.;D:\Java\lib;D:\Java\lib\dt.jar;D:\Java\lib\tools.jar;  
  D:\Tomcat\common\lib\servlet.jar   
   
     接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。  
   
     如果上面的tomcat安装成功的话,接下来继续安装JSP访问SQL Server 2000的驱动程序:  
   
    第三步:----安装JSP访问SQL   Server   2000的驱动程序:  
   
     从微软的网站上下载驱动程序: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  
    数据库操作成功,恭喜你   
     
    以上所有的内容涉及的相关条件:  
   
    操作系统:Window 2000 Server  
    J2SDK版本:j2sdk-1_4_2_04-windows  
    Tomcat版本:jakarta-tomcat-4.1.30  
    本地数据库:SQL Server 2000    
看看我的jsp连接sqlserver2000:  
   
        <%@   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=sqldb";    
        //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   *   from   users";    
        ResultSet   rs=stmt.executeQuery(sql);    
        while(rs.next())   {%>    
        您的第一个字段内容为:<%=rs.getString(1)%>    
        您的第二个字段内容为:<%=rs.getString(2)%>    
        <%}%>    
        <%out.print("数据库操作成功,恭喜你");%>    
        <%rs.close();    
        stmt.close();    
        conn.close();    
        %>    
        </body>    
        </html>    
   
   
  一,首先下载Microsoft   SQL   Server   2000   JDBC   驱动程序  
  http://download.microsoft.com/download/SQLSVR2000/Install/2.2.0022/NT5XP/EN-US/setup.exe  
   
  安装后默认路径在  
  c:\program   files\Microsoft   SQL   Server   2000   Driver   for   JDBC\  
  安装完之后,然后必须将安装目录中的lib目录下三个jar文件:  
  msbase.jar,mssqlserver.jar,msutil.jar拷贝到Tomcat目录下common\lib目录下  
  **************************************************************************  
   
  增加变量    
  CLASSPATH:  
  c:\program   files\Microsoft   SQL   Server   2000   Driver   for   JDBC\lib\msbase.jar;c:\program   files\Microsoft   SQL   Server   2000   Driver   for   JDBC\lib\msutil.jar;c:\program   files\Microsoft   SQL   Server   2000   Driver   for   JDBC\lib\mssqlserver.jar;d:\j2sdk1.4.1_01\jre\lib\rt.jar;.;   d:\j2sdk1.4.1_01\bin;.;d:\j2sdk1.4.1_01\lib;d:\j2sdk1.4.1_01\lib\dt.jar;d:\j2sdk1.4.1_01\lib\tools.jar  
   
  JAVA_HOME:  
  d:\j2sdk1.4.1_01  
   
  PATH:  
  d:\j2sdk1.4.1_01;.;d:\j2sdk1.4.1_01\bin  
   
  运行环境:  
  j2sdk1.4.1_01  
  win2000pro  
  sqlserver2000  
  tomcat   5.0  

 

说明:服务器是用Apache2,安装了sqlserver的jdbc驱动程序,代码是:  
  <%@   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="";  
  Connection   conn=   DriverManager.getConnection(url,user,password);  
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  String   sql="select   *   from   test";  
  ResultSet   rs=stmt.executeQuery(sql);  
  while(rs.next())   {%>  
  您的第一个字段内容为:<%=rs.getString(1)%>  
  您的第二个字段内容为:<%=rs.getString(2)%>  
  <%}%>  
  <%out.print("数据库操作成功,恭喜你");%>  
  <%rs.close();  
  stmt.close();  
  conn.close();  
  %>  
  </body>  
  </html>  
  出错提示:  
  java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC]Error  
  establishing   socket

 

这个问题提了n多次了。。。。。  
   
  这个错误是MS   SQLServer   2000   配置问题或者网络问题。  
  1.检查MS   server登录方式是否是混合模式  
      msserver-->企业管理器-->机器根结点-->右击-->属性-->安全性-->身份通验证-->选择SQL   servers和windows方式  
   
  2.确定msserver是否启动成功。如:启动过程失败、1433端口没有打开、没有打补丁(sql   server   2000   sp3补丁)  
        1433端口配置步骤  
        开始-->..-->Microsoft   SQL   Server-->客户端网络实用工具-->alias--选择TCP/IP,添加相应信息-->OK   
   
1433是sqlserver默认端口,楼上说的对,首先要看数据库的登陆模式,然后就是  
  msbase.jar,   mssqlserver.jar,msutil.jar是否拷贝至你的jvm机所在的lib或class目录下  
  jbx下:工程名属性--〉required   lib-->add-->msbase.jar,mssqlserver.jar,msutil.jar  
  这是个老例子了,绝对没错

  评论这张
 
阅读(592)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017