整个代码
<%@ page contentType="text/html; charset=gb2312" %><%@ page language="java" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %><jsp:useBean id="conn" class="myweb.database.DBConn" scope="page"/>
<html>
<body>
<%
String id=request.getParameter("tzlxid");if(id!=null)
{
conn.setDataSource("java:comp/env/jdbc/myweb");
Statement stmt=conn.getDBConn();
int maxpagesize=1;//每页记录数
int curpage=0;//当前记录值 String curnumb=request.getParameter("page");
if(curnumb!=null)
curpage=Integer.parseInt(curnumb);
else
curpage=0;
if(curpage<0)
curpage=0;String sqlstr;
sqlstr = "select * from content where lx_bh = "+id+" limit "+curpage+","+maxpagesize;ResultSet rs = stmt.executeQuery(sqlstr);%>
<table width="99%" border="0" align="left" bgcolor="#EDFAF4" bordercolordark="#0000CC"bordercolorlight="#0000CC" cellpadding="0" cellspacing="0" bordercolor="#0000CC" id="list">
<tr bgcolor="#006699">
<td background="pic/h3.gif">标题</td>
<td width="15%" background="pic/h3.gif">用户名</td>
<td width="8%" background="pic/h3.gif">评论</td>
<td width="15%" background="pic/h3.gif">时间</td>
</tr>
<% while(rs.next())
{
%>
<tr><td><%=rs.getString(5)%></td><td><%=rs.getString(4)%></td><td><%=rs.getString(4)%></td><td><%=rs.getString(4)%></td></tr>
<%
}
%>
<tr><td><a href="right.jsp?tzlxid=<%=id%>&page=<%=curpage-maxpagesize%>">上一页</a>&nbsp;&nbsp;&nbsp;<a href="right.jsp?tzlxid=<%=id%>&page=<%=curpage+maxpagesize%>">下一页</a></td></tr>
</table>
<%rs.close();
stmt.close();
}
else
{
%>
<jsp:include page="weather.htm"/>
<%
}
%>
</body>
</html>错误:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
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.lang.NullPointerException
org.apache.jsp.right_jsp._jspService(right_jsp.java:94)
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)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

解决方案 »

  1.   

    right.jsp里面有空指针异常.
    你从Tomcat下的work\Catalina\localhost\中找到你自己的工程文件夹,在它下面的org\apache\jsp\right_jsp.java文件的第94行有空指针.对应此行代码修改你的right.jsp.
      

  2.   

    经过我的查找,原因在这里:
    conn.setDataSource("java:comp/env/jdbc/myweb");
    Statement stmt=conn.getDBConn();//没有成功创建stmt;stmt为空指针但是我决的我的培植都是对的
    myweb.database.DBConn代码如下:package myweb.database;import java.io.*;
    import java.util.*;
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;public class DBConn{
    Connection con;
    Statement stmt;
    ResultSet rs;
    String datasource;

    public void setDataSource(String ds){
    this.datasource = ds;
    }
    public Statement getDBConn(){
    try{
    Context ctx = new InitialContext();
    DataSource ds = (DataSource)ctx.lookup(this.datasource);
    con = ds.getConnection();
    stmt = con.createStatement();
    return stmt;
    }
    catch(Exception e){
    System.out.println("Failed to connect from Database!");
    return null;
    }
    }
    }server.xml中的配置:
    <Resource name="jdbc/myweb" 
      auth="Container" 
      type="javax.sql.DataSource"/>

    <ResourceParams name="jdbc/myweb">
    <parameter>
    <name>factory</name>
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
    <name>maxActive</name>
    <value>100</value>
    </parameter>
    <parameter>
    <name>maxIdle</name>
    <value>30</value>
    </parameter>
    <parameter>
    <name>maxWait</name>
    <value>1000</value>
    </parameter>
    <parameter>
    <name>username</name>
    <value>root</value>
    </parameter>
    <parameter>
    <name>password</name>
    <value>2421543</value>
    </parameter>
    <parameter>
    <name>driveClassName</name>
    <value>com.mysql.jdbc.Drive</value>
    </parameter>
    <parameter>
    <name>url</name>
    <value>jdbc:mysql://localhost:3306/myweb?autoReconnect=true</value>
    </parameter>
    </ResourceParams>
    <!--DataSource end--> 
      

  3.   

    web.xml中的配置<!-- DataSource start-->
    <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/myweb</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>
    <!-- DataSource end-->
      

  4.   

    你在DBConn中断点调试.看它错在哪里.
      

  5.   

    我的编译DBconn时,没有提示错误的。Context ctx = new InitialContext();
    DataSource ds = (DataSource)ctx.lookup(this.datasource);
    con = ds.getConnection();
    stmt = con.createStatement();错误在这里面。或者是数据源里面
      

  6.   

    你看一下DataSource是否真的连接到你的数据库上了...