整个代码
<%@ 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> <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.
<%@ 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> <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.
你从Tomcat下的work\Catalina\localhost\中找到你自己的工程文件夹,在它下面的org\apache\jsp\right_jsp.java文件的第94行有空指针.对应此行代码修改你的right.jsp.
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-->
<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-->
DataSource ds = (DataSource)ctx.lookup(this.datasource);
con = ds.getConnection();
stmt = con.createStatement();错误在这里面。或者是数据源里面