空指针错误
你可以用out.print();out.close();一步一步看看

解决方案 »

  1.   

    你把<%=rs.getString(2)%>这条语句去掉,试试是不是能编译通过??我去掉以后是可以显示正常页面的。另外我sqlserver://后面直接改成IP的。没有要端口号。
      

  2.   

    问题出在这
    RowCount = rs.getRow();
    PageCount = ((RowCount% PageSize)==0?(RowCount/PageSize):(RowCount/PageSize)+1);没有得到值
      

  3.   

    你在前面rs.last(),后面又<%=rs.getString(2)%>,这样可能会出现错误。你试试在rs.last()之前定义个String ccc=rs.getString(2),然后把后面的<%=rs.getString(2)%>改为<%=ccc%>
      

  4.   

    rs.last();
    你在前面用了last方法,然后又没有把指针移到有数据的列,然后又用getString来取。这时候记录已经到了结尾,没有数据可以取了,所以报错。
    <%=rs.getString(2)%>
      

  5.   

    我把程序改的简单了,这下程序应该没问题了吧:
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <%! 
    Connection con=null;
    Statement stmt=null;
    ResultSet rs=null;%>
    <% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    con = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.1.33:1433;DatebaseName=DB_YHMSG","sms1","sms1sfwss");
    stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs = stmt.executeQuery("select * from TYHXX");
    String ccc=rs.getString("phonenumber");
    %>
    <%rs.close();
    stmt.close();
    con.close();
    %>
    但还是有错:
    javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
    org.apache.jsp.bb_jsp._jspService(bb_jsp.java:101)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    应该是没找到驱动吧
      

  6.   

    如果没有找到数据库
    你那个catch会抛出异常信息的同意  CoolAbu(阿卜-Never Stop(★★★★))
      

  7.   

    可我把程序该了,就是忘写输出了
    我加了<%=ccc%>
    但还是上面的错误
    我的系统是2003server
      

  8.   

    回复人: rainworm(上帝是只狗) ( )  
     
      我觉得你程序的错误不止一个,呵呵,先检查语法,再检查数据库连接,应该就没问题了
      
    大哥,给点指示行吗,程序和上面的一样
      
      

  9.   

    rs = stmt.executeQuery("select * from TYHXX");
             rs.next();//加这一条试下
    String ccc=rs.getString("phonenumber");
      

  10.   

    我是没办法了:
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <%! 
    Connection con=null;
    Statement stmt=null;
    ResultSet rs=null;%>
    <%
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    con = DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.1.33:1433;DatebaseName=DB_YHMSG","sms1","sms1sfwss");
    stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs = stmt.executeQuery("select * from TYHXX");
    if(rs.next())
    {%>
    <%=rs.getString("phonenumber")%>
    <%}rs.close();
    stmt.close();
    con.close();
    %>
    这样还不行,但用ODBC连可以
      

  11.   

    还是这个错误:
    javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
    org.apache.jsp.bb_jsp._jspService(bb_jsp.java:76)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    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:512)
    java.sql.DriverManager.getConnection(DriverManager.java:171)
    org.apache.jsp.bb_jsp._jspService(bb_jsp.java:54)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      

  12.   

    有可能是你环境变量就设置有问题。你 msbase.jar mssqlserver.jar msutil.jar 是不是放在Apache Software Foundation\Tomcat 5.0\common\lib 下面,即lib这个文件夹中??如果是的话,那么环境变量-用户变量 里 TOMCAT_HOME的值直接是 C:\Program Files\Apache Software Foundation\Tomcat 5.0就可以了。系统变量里 ClassPath值就是 .;$JAVA_HOME\LIB;$TOMCAT_HOME\COMMON\LIB 即可。
      

  13.   

    把msbase.jar mssqlserver.jar msutil.jar 这3个驱动Copy到webapps\你的webapp\WEB-INF\lib下,然后重启服务试试。先要确保你的MSSQL服务器是混合模式登陆的。