<%@page pageEncoding="GB18030" %>
<%@page import=" java.sql.*" %>
<%@page import=" java.util.*" %>
<%@page import="java.io.*" %>
<%@page import="com.bjsxt.bbs.*" %>
<%!
private void tree(Set<Article> articles,Connection conn,int id,int grade){
String sql = "select * from atticle 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.getTimestamp("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);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0051)http://bbs.chinajavaworld.com/forum.jspa -->
<HTML>
<HEAD>
<TITLE>论坛: Java语言*初级版</TITLE>
<META content="text/html; charset=UTF-8" http-equiv=content-type>
<LINK
rel=stylesheet type=text/css href="images/style.jsp">
<META name=GENERATOR content="MSHTML 8.00.7600.16535">
</HEAD>
<BODY>
<TABLE border=0 cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width="1%"><A href="http://bbs.chinajavaworld.com/index.jspa">“”<IMG
border=0 alt=JAVA中文世界论坛|JAVA开发者论坛 src="images/header-left.gif"
width=199 height=38></A></TD>
<TD width="98%"><IMG border=0 alt=""
src="images/header-stretch.gif" width="100%" height=38></TD>
<TD width="1%"><IMG border=0 alt="" src="images/header-right.gif"
width=5 height=38></TD>
</TR>
</TBODY>
</TABLE>
<BR>
<BR>
<DIV id=jive-accountbox class=clearfix>
<DL>
<DT>欢迎, 游客 </DT>
<DD><A class=jive-acc-login
href="http://bbs.chinajavaworld.com/login!withRedirect.jspa">登录 / 注册</A> </DD>
<DD><A class=jive-acc-cp
href="http://bbs.chinajavaworld.com/guestsettings!default.jspa">游客设置</A> </DD>
</DL>
</DIV>
<P class=jive-page-title>论坛: Java语言*初级版</P>
<LINK title=RSS
rel=alternate type=application/rss+xml
href="http://bbs.chinajavaworld.com/rss/rssmessages.jspa?forumID=20">
<SCRIPT language=JavaScript type=text/javascript
src="images/common.js"></SCRIPT>
<DIV id=jive-forumpage>
<DIV class=jive-buttons>
<TABLE border=0 cellSpacing=0 summary=Buttons cellPadding=0>
<TBODY>
<TR>
<TD class=jive-icon><A
href="http://bbs.chinajavaworld.com/post!default.jspa?forumID=20"><IMG
border=0 alt=发表新主题 src="images/post-16x16.gif" width=16
height=16></A></TD>
<TD class=jive-icon-label><A id=jive-post-thread
href="http://bbs.chinajavaworld.com/post!default.jspa?forumID=20">发表新主题</A></TD>
</TR>
</TBODY>
</TABLE>
</DIV>
<BR>
<INPUT value=last90days type=hidden
name=dateRange>
<TABLE border=0 cellSpacing=0 cellPadding=3 width="100%">
<TBODY>
<TR vAlign=top>
<TD><NOBR>帖子: 150,818</NOBR> - <NOBR>主题: 36,509</NOBR> - <SPAN class=nobreak>页数: 1,461 - <SPAN class=jive-paginator>[ <A
class=jive-current
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=0&isBest=0">1</A> <A
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=25&isBest=0">2</A> <A
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=50&isBest=0">3</A> <A
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=75&isBest=0">4</A> <A
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=100&isBest=0">5</A> | <A
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=25&isBest=0">下一页</A> ] </SPAN></SPAN></TD>
</TR>
</TBODY>
</TABLE>
<TABLE border=0 cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR vAlign=top>
<TD width="99%"><DIV class=jive-thread-list>
<DIV class=jive-table>
<TABLE cellSpacing=0 summary="List of threads" cellPadding=0
width="100%">
<THEAD>
<TR>
<TH class=jive-first colSpan=3>主题 </TH>
<TH class=jive-author><NOBR>作者 </NOBR></TH>
<TH class=jive-view-count><NOBR>查看 </NOBR></TH>
<TH class=jive-msg-count noWrap>回复 </TH>
<TH class=jive-last noWrap>最新帖子 </TH>
</TR>
</THEAD>
<%
for(Iterator<Article> it=articles.iterator();it.hasNext();){
Article a = it.next();
%>
<TBODY>
<TR class=jive-even>
<TD class=jive-first width="1%" noWrap><DIV class=jive-bullet><IMG border=0 alt=读
src="images/read-16x16.gif" width=16 height=16>
</div></DIV></TD>
<TD width="1%" noWrap> </TD>
<TD class=jive-thread-name width="95%">
<IMG align=absMiddle src="images/ico_top.gif"> <IMG align=absMiddle src="images/ico_best.gif">
<A id=jive-thread-1
href="http://bbs.chinajavaworld.com/thread.jspa?threadID=693566&tstart=0">自动设置环境变量</A></TD>
<TD class=jive-view-count width="1%"noWrap><SPAN><A
href="http://bbs.chinajavaworld.com/profile.jspa?userID=28427">57,479</A> </SPAN> </TD>
<TD class=jive-msg-count width="1%">458 </TD>
<TD class=jive-last width="1%" noWrap><DIV class=jive-last-post>2010-5-3 上午8:08 <BR>
最后发表: <A title=0451zhf
href="http://bbs.chinajavaworld.com/thread.jspa?messageID=889340#889340">0451zhf
»</A> </DIV></TD>
</TR>
<TR class=jive-odd>
<TD class=jive-first width="1%" noWrap><DIV class=jive-bullet><IMG border=0 alt=读
src="images/read-16x16.gif" width=16 height=16> </
div></DIV></TD>
<TD width="1%" noWrap> </TD>
<TD class=jive-thread-name width="95%"><IMG align=absMiddle
src="images/ico_top.gif"> <A id=jive-thread-2
href="http://bbs.chinajavaworld.com/thread.jspa?threadID=733256&tstart=0">[试用政策]请大家向此帖中推荐本版块精华贴</A></TD>
<TD class=jive-author width="1%" noWrap><SPAN><A
href="http://bbs.chinajavaworld.com/profile.jspa?userID=28627">alan</A> </SPAN></TD>
<TD class=jive-view-count width="1%">12,002 </TD>
<TD class=jive-msg-count width="1%">37 </TD>
<TD class=jive-last width="1%" noWrap><DIV class=jive-last-post>2010-4-13 下午5:43 <BR>
最后发表: <A
title=qiongyi
href="http://bbs.chinajavaworld.com/thread.jspa?messageID=887498#887498">qiongyi
»</A> </DIV></TD>
</TR>
<%
}
%>
</TBODY>
</TABLE>
</DIV>
</DIV></TD>
</TR>
</TBODY>
</TABLE>
</DIV>
<BR>
</BODY>
</HTML>
java.lang.NullPointerException请问这怎么解决啊,哪里出问题啦
<%@page import=" java.sql.*" %>
<%@page import=" java.util.*" %>
<%@page import="java.io.*" %>
<%@page import="com.bjsxt.bbs.*" %>
<%!
private void tree(Set<Article> articles,Connection conn,int id,int grade){
String sql = "select * from atticle 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.getTimestamp("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);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0051)http://bbs.chinajavaworld.com/forum.jspa -->
<HTML>
<HEAD>
<TITLE>论坛: Java语言*初级版</TITLE>
<META content="text/html; charset=UTF-8" http-equiv=content-type>
<LINK
rel=stylesheet type=text/css href="images/style.jsp">
<META name=GENERATOR content="MSHTML 8.00.7600.16535">
</HEAD>
<BODY>
<TABLE border=0 cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width="1%"><A href="http://bbs.chinajavaworld.com/index.jspa">“”<IMG
border=0 alt=JAVA中文世界论坛|JAVA开发者论坛 src="images/header-left.gif"
width=199 height=38></A></TD>
<TD width="98%"><IMG border=0 alt=""
src="images/header-stretch.gif" width="100%" height=38></TD>
<TD width="1%"><IMG border=0 alt="" src="images/header-right.gif"
width=5 height=38></TD>
</TR>
</TBODY>
</TABLE>
<BR>
<BR>
<DIV id=jive-accountbox class=clearfix>
<DL>
<DT>欢迎, 游客 </DT>
<DD><A class=jive-acc-login
href="http://bbs.chinajavaworld.com/login!withRedirect.jspa">登录 / 注册</A> </DD>
<DD><A class=jive-acc-cp
href="http://bbs.chinajavaworld.com/guestsettings!default.jspa">游客设置</A> </DD>
</DL>
</DIV>
<P class=jive-page-title>论坛: Java语言*初级版</P>
<LINK title=RSS
rel=alternate type=application/rss+xml
href="http://bbs.chinajavaworld.com/rss/rssmessages.jspa?forumID=20">
<SCRIPT language=JavaScript type=text/javascript
src="images/common.js"></SCRIPT>
<DIV id=jive-forumpage>
<DIV class=jive-buttons>
<TABLE border=0 cellSpacing=0 summary=Buttons cellPadding=0>
<TBODY>
<TR>
<TD class=jive-icon><A
href="http://bbs.chinajavaworld.com/post!default.jspa?forumID=20"><IMG
border=0 alt=发表新主题 src="images/post-16x16.gif" width=16
height=16></A></TD>
<TD class=jive-icon-label><A id=jive-post-thread
href="http://bbs.chinajavaworld.com/post!default.jspa?forumID=20">发表新主题</A></TD>
</TR>
</TBODY>
</TABLE>
</DIV>
<BR>
<INPUT value=last90days type=hidden
name=dateRange>
<TABLE border=0 cellSpacing=0 cellPadding=3 width="100%">
<TBODY>
<TR vAlign=top>
<TD><NOBR>帖子: 150,818</NOBR> - <NOBR>主题: 36,509</NOBR> - <SPAN class=nobreak>页数: 1,461 - <SPAN class=jive-paginator>[ <A
class=jive-current
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=0&isBest=0">1</A> <A
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=25&isBest=0">2</A> <A
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=50&isBest=0">3</A> <A
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=75&isBest=0">4</A> <A
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=100&isBest=0">5</A> | <A
href="http://bbs.chinajavaworld.com/forum.jspa?forumID=20&start=25&isBest=0">下一页</A> ] </SPAN></SPAN></TD>
</TR>
</TBODY>
</TABLE>
<TABLE border=0 cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR vAlign=top>
<TD width="99%"><DIV class=jive-thread-list>
<DIV class=jive-table>
<TABLE cellSpacing=0 summary="List of threads" cellPadding=0
width="100%">
<THEAD>
<TR>
<TH class=jive-first colSpan=3>主题 </TH>
<TH class=jive-author><NOBR>作者 </NOBR></TH>
<TH class=jive-view-count><NOBR>查看 </NOBR></TH>
<TH class=jive-msg-count noWrap>回复 </TH>
<TH class=jive-last noWrap>最新帖子 </TH>
</TR>
</THEAD>
<%
for(Iterator<Article> it=articles.iterator();it.hasNext();){
Article a = it.next();
%>
<TBODY>
<TR class=jive-even>
<TD class=jive-first width="1%" noWrap><DIV class=jive-bullet><IMG border=0 alt=读
src="images/read-16x16.gif" width=16 height=16>
</div></DIV></TD>
<TD width="1%" noWrap> </TD>
<TD class=jive-thread-name width="95%">
<IMG align=absMiddle src="images/ico_top.gif"> <IMG align=absMiddle src="images/ico_best.gif">
<A id=jive-thread-1
href="http://bbs.chinajavaworld.com/thread.jspa?threadID=693566&tstart=0">自动设置环境变量</A></TD>
<TD class=jive-view-count width="1%"noWrap><SPAN><A
href="http://bbs.chinajavaworld.com/profile.jspa?userID=28427">57,479</A> </SPAN> </TD>
<TD class=jive-msg-count width="1%">458 </TD>
<TD class=jive-last width="1%" noWrap><DIV class=jive-last-post>2010-5-3 上午8:08 <BR>
最后发表: <A title=0451zhf
href="http://bbs.chinajavaworld.com/thread.jspa?messageID=889340#889340">0451zhf
»</A> </DIV></TD>
</TR>
<TR class=jive-odd>
<TD class=jive-first width="1%" noWrap><DIV class=jive-bullet><IMG border=0 alt=读
src="images/read-16x16.gif" width=16 height=16> </
div></DIV></TD>
<TD width="1%" noWrap> </TD>
<TD class=jive-thread-name width="95%"><IMG align=absMiddle
src="images/ico_top.gif"> <A id=jive-thread-2
href="http://bbs.chinajavaworld.com/thread.jspa?threadID=733256&tstart=0">[试用政策]请大家向此帖中推荐本版块精华贴</A></TD>
<TD class=jive-author width="1%" noWrap><SPAN><A
href="http://bbs.chinajavaworld.com/profile.jspa?userID=28627">alan</A> </SPAN></TD>
<TD class=jive-view-count width="1%">12,002 </TD>
<TD class=jive-msg-count width="1%">37 </TD>
<TD class=jive-last width="1%" noWrap><DIV class=jive-last-post>2010-4-13 下午5:43 <BR>
最后发表: <A
title=qiongyi
href="http://bbs.chinajavaworld.com/thread.jspa?messageID=887498#887498">qiongyi
»</A> </DIV></TD>
</TR>
<%
}
%>
</TBODY>
</TABLE>
</DIV>
</DIV></TD>
</TR>
</TBODY>
</TABLE>
</DIV>
<BR>
</BODY>
</HTML>
java.lang.NullPointerException请问这怎么解决啊,哪里出问题啦
解决方案 »
- ant怎么用?谁教教我?
- poi Excel 简繁体编码问题
- 一个奇怪的问题
- 在jsp中写sql代码的讨论
- Write a JSP to output the values returned by System.getProperty ……
- java web的流程管理组件有哪些好用的?
- servlet包 在j2sdk还是在tomcat中?
- 高分寻求:如何通过IP地址查询Whois信息?
- 急,初级问题,请不吝赐教
- 请问哪有支持servlet的免费网站
- java el表达式中 split 怎么后循环
- 急急急……springmvc使用unitls测试时,无法通过@SpringBeanByType注入AnnotationMethodHandlerAdapter
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NullPointerException
com.bjsxt.bbs.DB.createStmt(DB.java:23)
org.apache.jsp.article_jsp.tree(article_jsp.java:17)
org.apache.jsp.article_jsp._jspService(article_jsp.java:92)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
tree(articles, conn,a.getId(),grade+1); 这个你都是空的.. 没有获取connection的实例....获取你先定义一下 connection ----> private Connection conn=null;
这不提示的很明显了么
这是我的DB.java代码package com.bjsxt.bbs;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
public class DB {
public static Connection getConn(){
Connection conn = null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:alan","sa","881205");
}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;
}
}
}
String sql = "select * from atticle where pid ="+id;
Statement stmt = DB.createStmt(conn);
ResultSet rs = DB.executeQuery(stmt,sql);
你确定你传过来的conn 取到值了吗?
你直接不用传,改成这个试试:private void tree(Set<Article> articles,int id,int grade){
Connection conn = DB.getConn();
String sql = "select * from atticle where pid ="+id;
Statement stmt = DB.createStmt(conn);
ResultSet rs = DB.executeQuery(stmt,sql);
Connection conn = DB.getConn();
String sql = "select * from atticle where pid ="+id;
Statement stmt = DB.createStmt(conn);
ResultSet rs = DB.executeQuery(stmt,sql);
这样就行
Set<Article> articles = new HashSet<Article>();
Connection conn = DB.getConn();
tree(articles,conn,0,0);
DB.close(conn);
%>
<%!
private void tree(Set<Article> articles,Connection conn,int id,int grade){
String sql = "select * from atticle 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.getTimestamp("pdate"));
a.setGrade(grade);
articles.add(a);
if(!a.isLeaf()){
tree(articles,conn,a.getId(),grade+1);
}
}
}catch(SQLException e){
e.printStackTrace();
}
}
%>这样
不知是不是atticle写错,应该是article吧?
lz很有可能是一下两行代码传入的某些参数为null:
Statement stmt = DB.createStmt(conn);
ResultSet rs = DB.executeQuery(stmt,sql);
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 35 in the jsp file: /article.jsp
The method tree(Set<Article>, int, int) in the type article_jsp is not applicable for the arguments (Set<Article>, Connection, int, int)
32: <%
33: Set<Article> articles = new HashSet<Article>();
34: Connection conn = DB.getConn();
35: tree(articles,conn,0,0);
36: DB.close(conn);
37: %>
38: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Connection conn = null;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:alan","sa","881205");
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}
return conn;
}
把Connection conn = null;这句写到getConn()外面试试private Connection conn;!
返回来的connection是不是已经就是一个null
找了我1个多钟。。各种看代码。。结果就是看不出哪里不对。
后面鬼使神差就怀疑是数据库的问题,然后豁然开朗了
其实结果很简单:昨天我手贱把MySQL的服务启动改成手动了。所以MySQL没开 conn链接不上数据库。。所以报空指针。。代码其实是没问题的。。坑爹 定向思维了~大家一起借鉴吧
找了我1个多钟。。各种看代码。。结果就是看不出哪里不对。
后面鬼使神差就怀疑是数据库的问题,然后豁然开朗了
其实结果很简单:昨天我手贱把MySQL的服务启动改成手动了。所以MySQL没开 conn链接不上数据库。。所以报空指针。。代码其实是没问题的。。坑爹 定向思维了~大家一起借鉴吧