运行jsp之后总在红色的部分报错!高手指教啊!<%@ page contentType="text/html;charset=gb2312"%>   
<%@ page language="java" import="java.sql.*"%> 
<jsp:useBean id="SqlBean" scope="page" class="XSCJ_Bean.SQLServerConnBean" />
<HTML>
<HEAD>
<Meta http-equiv="Content-Type=" content="text/html;charset=gb2312">
<TITLE>使用JDBC直接访问SQL Server数据库</TITLE>
<Style type="text/css">
<!--
.style1{
color:#FF0000;
font-size:24px;
}
-->
</Style>
</HEAD> 
<BODY>
<Div align="center">
<span class="style1">JDBC直接访问SQL Server数据库</span><BR><HR><BR>
</Div>
<Table border=2 bordercolor="#FFCCCC" align="center">
<tr bgcolor=CCCCCC align=center>
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>出生日期</td>
<td>专业名</td>
<td>总学分</td>
<td>备注</td>

</tr>
<%
//查询XS表中XH,XM,ZY和ZXF字段的前10条记录
String sql="select top 2 * from XS";     
//调用SqlBean中加载JDBC驱动的成员函数OpenConn()
SqlBean.OpenConn();      
ResultSet rs=SqlBean.executeQuery(sql);  
while(rs.next())
{
%>   
<tr>
<td><%=rs.getString("XH")%></td>  
<td><%=rs.getString("XM")%></td>
<td><%=rs.getString("XB")%></td>
<td><%=rs.getInt("CSRQ")%></td>
                <td><%=rs.getString("ZY")%></td>
<td><%=rs.getString("ZXF")%></td>
<td><%=rs.getInt("BZ")%></td>
</tr>    
<%
}
%>   
<%
out.print("数据库操作成功,恭喜你");   
rs.close();   
SqlBean.closeStmt();
SqlBean.closeConn(); 
%>
</Table>   
</BODY>   
</HTML>

解决方案 »

  1.   


    报什么错?把错误贴出来。
    SqlBean.executeQuery(sql); 这里有问题
    你就在XSCJ_Bean.SQLServerConnBean类里面的.executeQuery这个方法里面找原因啊
      

  2.   

    type Exception reportmessage An exception occurred processing JSP page /SQLServer.jsp at line 37 34: String sql="select top 2 * from XS"; 35: //调用SqlBean中加载JDBC驱动的成员函数OpenConn() 36: SqlBean.OpenConn(); 37: ResultSet rs=SqlBean.executeQuery(sql); 38: while(rs.next()) 39: { 40: %> Stacktrace:description The server encountered an internal error (An exception occurred processing JSP page /SQLServer.jsp at line 37 34: String sql="select top 2 * from XS"; 35: //调用SqlBean中加载JDBC驱动的成员函数OpenConn() 36: SqlBean.OpenConn(); 37: ResultSet rs=SqlBean.executeQuery(sql); 38: while(rs.next()) 39: { 40: %> Stacktrace:) that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /SQLServer.jsp at line 3734:  String sql="select top 2 * from XS";     
    35:  //调用SqlBean中加载JDBC驱动的成员函数OpenConn()
    36:  SqlBean.OpenConn();      
    37:  ResultSet rs=SqlBean.executeQuery(sql);  
    38:  while(rs.next())
    39:  {
    40: %>   
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    root cause java.lang.NullPointerException
    XSCJ_Bean.SQLServerConnBean.executeQuery(SQLServerConnBean.java:30)
    org.apache.jsp.SQLServer_jsp._jspService(SQLServer_jsp.java:105)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    note The full stack trace of the root cause is available in the Apache Tomcat/7.0.29 logs.
      

  3.   

    package XSCJ_Bean;
    import java.sql.*;
    public class SQLServerConnBean
    {
    private Statement  stmt=null;
    private Connection conn = null;
        ResultSet  rs=null;
        //构造函数
        public SQLServerConnBean () { } 
    public void OpenConn()throws Exception
    {
    try{             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();   
    String url="jdbc:sqlserver://localhost:1433;DatabaseName=XSCJ"; 
    String user="sa"; 
    String password="admin123"; 
    conn= DriverManager.getConnection(url,user,password);   
       }
        catch(SQLException e)
                       {
        System.err.println("Data.executeQuery: " +e.getMessage());
       }
    }
        //执行查询类的SQL语句,有返回集
    public ResultSet executeQuery(String sql) 
         {
    rs=null;
    try {
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    ResultSet.CONCUR_UPDATABLE);
          rs = stmt.executeQuery(sql);
                        } 
            catch(SQLException e)  
                        { 
               System.err.println("Data.executeQuery: " + e.getMessage());
                        }
         return rs;
            }
    //关闭对象
       public void closeStmt()
    {
         try {
           stmt.close();
              }
         catch(SQLException e) 
                { 
           System.err.println("Date.executeQuery: " + e.getMessage());
             }
       }
       public void closeConn()
    {
         try
               {
           conn.close();
             }
            catch(SQLException e) 
               { 
           System.err.println("Data.executeQuery: " + e.getMessage());
             }
       }
    }
      

  4.   

    package XSCJ_Bean;
    import java.sql.*;
    public class SQLServerConnBean
    {
    private Statement  stmt=null;
    private Connection conn = null;
        ResultSet  rs=null;
        //构造函数
        public SQLServerConnBean () { } 
    public void OpenConn()throws Exception
    {
    try{             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();   
    String url="jdbc:sqlserver://localhost:1433;DatabaseName=XSCJ"; 
    String user="sa"; 
    String password="admin123"; 
    conn= DriverManager.getConnection(url,user,password);   
       }
        catch(SQLException e)
                       {
        System.err.println("Data.executeQuery: " +e.getMessage());
       }
    }
        //执行查询类的SQL语句,有返回集
    public ResultSet executeQuery(String sql) 
         {
    rs=null;
    try {
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    ResultSet.CONCUR_UPDATABLE);
          rs = stmt.executeQuery(sql);
                        } 
            catch(SQLException e)  
                        { 
               System.err.println("Data.executeQuery: " + e.getMessage());
                        }
         return rs;
            }
    //关闭对象
       public void closeStmt()
    {
         try {
           stmt.close();
              }
         catch(SQLException e) 
                { 
           System.err.println("Date.executeQuery: " + e.getMessage());
             }
       }
       public void closeConn()
    {
         try
               {
           conn.close();
             }
            catch(SQLException e) 
               { 
           System.err.println("Data.executeQuery: " + e.getMessage());
             }
       }
    }
      

  5.   

    把执行的SQL打印出来 在你数据库中执行一下 看有没有问题。。
      

  6.   

    java.lang.NullPointerException
    XSCJ_Bean.SQLServerConnBean.executeQuery(SQLServerConnBean.java:30)
    这是空指针异常
    要在SQLServerConnBean类中找 SQLServerConnBean.java:30看看这里
      

  7.   

        上面的那个是 报错信息。下面的那个是bean类文件
      

  8.   

    先看下你的驱动有没有在项目下
    try {
    Class.forName(driver);
    System.out.println("驱动成功!");
    Connection connection = (Connection)     DriverManager.getConnection(url,username,pass);
    System.out.println(connection.toString()+" -- ");
    } catch (ClassNotFoundException e) {
    System.out.println("驱动失败!");
    e.printStackTrace();
    } catch (SQLException e) {
    System.out.println("数据库连接失败!!!");
    e.printStackTrace();
    }你可以这样测试一下,看打印出来什么东西?