2011-12-18 19:02:22 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.article_jsp.tree(article_jsp.java:20)
at org.apache.jsp.article_jsp._jspService(article_jsp.java:80)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
报空指针异常,但找了很久,不知道如何解决,下面是代码
<%@page pageEncoding="GBK" %>
<%@page import="java.sql.*,java.io.*,com.lisong.bbs.*,java.util.*" %>
<%!
private void tree( Set<Article> articles ,Connection conn, int id, int grade){
String sql="select * form article where pid="+id;
Statement stmt=DB.createstmt(conn);
ResultSet rs=DB.executeQuery(stmt,sql);
try{
while (rs.next()){
Article a=new Article();
a.setId(rs.getInt("id"));
a.setPid(rs.getInt("pid"));
a.setRootid(rs.getInt("rootid"));
a.setTitle(rs.getString("title"));
a.setLeaf(rs.getInt("isleaf")==0?true:false);
a.setPdate(rs.getDate("pdate"));
a.setGrade(grade);
articles.add(a);
if(!a.isLeaf()){
tree(articles,conn,a.getId(),grade+1);
}
}
}catch(SQLException e){
e.printStackTrace();
}
}
%>
<%
Set<Article> articles=new HashSet<Article>();
Connection conn=DB.getconn();
tree(articles,conn,0,0);
DB.close(conn);
%>
下面的代码是在html中的:
<%
for (Iterator<Article> it=articles.iterator(); it.hasNext();){
Article a=it.next();
%>
还有一个包中的两个封装类
import java.util.Date;public class Article {
private int id;
private int pid;
private int rootid;
private String title;
private String cont;
private Date pdate;
private boolean isLeaf;
private int grade;
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public int getRootid() {
return rootid;
}
public void setRootid(int rootid) {
this.rootid = rootid;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getCont() {
return cont;
}
public void setCont(String cont) {
this.cont = cont;
}
public Date getPdate() {
return pdate;
}
public void setPdate(Date pdate) {
this.pdate = pdate;
}
public boolean isLeaf() {
return isLeaf;
}
public void setLeaf(boolean isLeaf) {
this.isLeaf = isLeaf;
}
}
另一个包装类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class DB {
public static Connection getconn(){
Connection conn=null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs","root","root");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static Statement createstmt(Connection conn){
Statement stmt=null;
try {
stmt=conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return stmt;
}
public static ResultSet executeQuery(Statement stmt ,String sql){
ResultSet rs=null;
try {
rs=stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public static void close(Connection conn){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
}
public static void close(Statement stmt){
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt=null;
}
}
public static void close(ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs=null;
}
}
}
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.article_jsp.tree(article_jsp.java:20)
at org.apache.jsp.article_jsp._jspService(article_jsp.java:80)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
报空指针异常,但找了很久,不知道如何解决,下面是代码
<%@page pageEncoding="GBK" %>
<%@page import="java.sql.*,java.io.*,com.lisong.bbs.*,java.util.*" %>
<%!
private void tree( Set<Article> articles ,Connection conn, int id, int grade){
String sql="select * form article where pid="+id;
Statement stmt=DB.createstmt(conn);
ResultSet rs=DB.executeQuery(stmt,sql);
try{
while (rs.next()){
Article a=new Article();
a.setId(rs.getInt("id"));
a.setPid(rs.getInt("pid"));
a.setRootid(rs.getInt("rootid"));
a.setTitle(rs.getString("title"));
a.setLeaf(rs.getInt("isleaf")==0?true:false);
a.setPdate(rs.getDate("pdate"));
a.setGrade(grade);
articles.add(a);
if(!a.isLeaf()){
tree(articles,conn,a.getId(),grade+1);
}
}
}catch(SQLException e){
e.printStackTrace();
}
}
%>
<%
Set<Article> articles=new HashSet<Article>();
Connection conn=DB.getconn();
tree(articles,conn,0,0);
DB.close(conn);
%>
下面的代码是在html中的:
<%
for (Iterator<Article> it=articles.iterator(); it.hasNext();){
Article a=it.next();
%>
还有一个包中的两个封装类
import java.util.Date;public class Article {
private int id;
private int pid;
private int rootid;
private String title;
private String cont;
private Date pdate;
private boolean isLeaf;
private int grade;
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public int getRootid() {
return rootid;
}
public void setRootid(int rootid) {
this.rootid = rootid;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getCont() {
return cont;
}
public void setCont(String cont) {
this.cont = cont;
}
public Date getPdate() {
return pdate;
}
public void setPdate(Date pdate) {
this.pdate = pdate;
}
public boolean isLeaf() {
return isLeaf;
}
public void setLeaf(boolean isLeaf) {
this.isLeaf = isLeaf;
}
}
另一个包装类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class DB {
public static Connection getconn(){
Connection conn=null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs","root","root");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static Statement createstmt(Connection conn){
Statement stmt=null;
try {
stmt=conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
return stmt;
}
public static ResultSet executeQuery(Statement stmt ,String sql){
ResultSet rs=null;
try {
rs=stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public static void close(Connection conn){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn=null;
}
}
public static void close(Statement stmt){
if(stmt!=null){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
stmt=null;
}
}
public static void close(ResultSet rs){
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs=null;
}
}
}
解决方案 »
- struts 中用addFieldError("noTypeCode", "错误!"); 二次提交却不调用action,注释之后action却可以调用。
- spring获取applicationContext问题,在线等待.....
- 谁能用比较清楚的语句帮我介绍写javaEE到底是什么...
- 如何编写代码 启动 部署 更新 停止 tomcat
- jsp连接access数据库有没有驱动或jsp怎么连接access数据库
- struts-config.xml里面图形界面怎么让它自动排版哦
- 问大家一个关于在实际开发中使用HIBERNATE的小问题
- 请教dom4j的问题Premature end of file?
- 报表问题:JSP
- 通过用户id查询用户信息(求助)
- 请问有自行开发过JMS服务器端的吗?
- 一个数据库问题
啊 现在怎么处理呢
啊 现在怎么处理呢
有知道怎么解决的吗 来帮帮忙吧