出错提示java.lang.NullPointerException
at com.tchManage.dao.PostDAO.findAllPost(PostDAO.java:39)
at com.tchManage.servlet.PostController.findAll(PostController.java:131)
at com.tchManage.servlet.PostController.doPost(PostController.java:40)
at com.tchManage.servlet.PostController.doGet(PostController.java:147)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)com.tchManage.dao.PostDAO.java
public List<Post> findAllPost(int currentPage) throws SQLException,ClassNotFoundException{
try{
ResultSet rs=pl.pageList(5,"userinfo",currentPage,"desc","id");(39)
System.out.println(rs);
rs.beforeFirst();
List<Post> list=new ArrayList<Post>();
while(rs.next()){
Post u=new Post();
u.setId(rs.getInt("id"));
u.setTitle(rs.getString("title"));
u.setContent(rs.getString("content"));
u.setTime(rs.getString("time"));
list.add(u);
}
return list;
}catch(Exception e){
e.printStackTrace();
}com.tchManage.servlet.PostController.java
//查找所有公告
private void findAll(HttpServletRequest request,
HttpServletResponse response) {
try{
//request.setAttribute("pageinfo",postdao.pageSize());
//String currpage=request.getParameter("currentPage");
int currentPage=1;
//if(currpage!=null){
// currentPage=Integer.parseInt(currpage);
//}
List<Post> list = new ArrayList<Post>();
list = postdao.findAllPost(currentPage);
request.setAttribute("findAll", list);
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}catch(Exception e){
e.printStackTrace();
}
}
PageList.java pageList()分页方法
public ResultSet pageList(int pagesize, String tablename, int currentePage,
String sort, String sortBy) throws ClassNotFoundException {
//ResultSet rs=null;
try {
new DBConnection();
Connection conn=DBConnection.getConnection();
//Connection conn = DBConnection.getConnection();
String sql = "select * from " + tablename;
System.out.println(sql);
PreparedStatement psmt=conn.prepareStatement(sql);
ResultSet rs = psmt.executeQuery();
System.out.println(rs);
if (currentePage == 1) { String getRs = "select * from "
+ tablename + " where id >0 order by " + sortBy + " "
+ sort+" limit "+ pagesize ;
ResultSet pageRs = psmt.executeQuery(getRs);
System.out.println("sss"+pageRs);
return pageRs;
} else {
rs.absolute(pagesize * (currentePage - 1));
int lastid = rs.getInt("id");
String getRs = "select * from "
+ tablename + " where id>" + lastid + " order by "
+ sortBy + " " + sort+" limit "+ pagesize;
ResultSet pageRs = psmt.executeQuery(getRs);
System.out.println("ss"+pageRs);
return pageRs;
} } catch (Exception e) {
e.printStackTrace();
}
return null;
}
index.jsp中显示的部分
<table height="366" border="0" width="400" bgcolor="#cccccc">
<tbody>
<c:forEach items="${requestScope.findAll}" var="post">
<tr>
<td colspan="2" align="center" >${post.title}</td>
</tr>
<tr><td align="right" colspan="2" bgcolor="#ffffff">${post.time}</td></tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">${post.content}</td></tr>
</c:forEach>
</tbody>
</table>调试第一步
调试第二步直接跳到catch
大家帮帮忙吧!~很神奇的bug。
at com.tchManage.dao.PostDAO.findAllPost(PostDAO.java:39)
at com.tchManage.servlet.PostController.findAll(PostController.java:131)
at com.tchManage.servlet.PostController.doPost(PostController.java:40)
at com.tchManage.servlet.PostController.doGet(PostController.java:147)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)com.tchManage.dao.PostDAO.java
public List<Post> findAllPost(int currentPage) throws SQLException,ClassNotFoundException{
try{
ResultSet rs=pl.pageList(5,"userinfo",currentPage,"desc","id");(39)
System.out.println(rs);
rs.beforeFirst();
List<Post> list=new ArrayList<Post>();
while(rs.next()){
Post u=new Post();
u.setId(rs.getInt("id"));
u.setTitle(rs.getString("title"));
u.setContent(rs.getString("content"));
u.setTime(rs.getString("time"));
list.add(u);
}
return list;
}catch(Exception e){
e.printStackTrace();
}com.tchManage.servlet.PostController.java
//查找所有公告
private void findAll(HttpServletRequest request,
HttpServletResponse response) {
try{
//request.setAttribute("pageinfo",postdao.pageSize());
//String currpage=request.getParameter("currentPage");
int currentPage=1;
//if(currpage!=null){
// currentPage=Integer.parseInt(currpage);
//}
List<Post> list = new ArrayList<Post>();
list = postdao.findAllPost(currentPage);
request.setAttribute("findAll", list);
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request, response);
}catch(Exception e){
e.printStackTrace();
}
}
PageList.java pageList()分页方法
public ResultSet pageList(int pagesize, String tablename, int currentePage,
String sort, String sortBy) throws ClassNotFoundException {
//ResultSet rs=null;
try {
new DBConnection();
Connection conn=DBConnection.getConnection();
//Connection conn = DBConnection.getConnection();
String sql = "select * from " + tablename;
System.out.println(sql);
PreparedStatement psmt=conn.prepareStatement(sql);
ResultSet rs = psmt.executeQuery();
System.out.println(rs);
if (currentePage == 1) { String getRs = "select * from "
+ tablename + " where id >0 order by " + sortBy + " "
+ sort+" limit "+ pagesize ;
ResultSet pageRs = psmt.executeQuery(getRs);
System.out.println("sss"+pageRs);
return pageRs;
} else {
rs.absolute(pagesize * (currentePage - 1));
int lastid = rs.getInt("id");
String getRs = "select * from "
+ tablename + " where id>" + lastid + " order by "
+ sortBy + " " + sort+" limit "+ pagesize;
ResultSet pageRs = psmt.executeQuery(getRs);
System.out.println("ss"+pageRs);
return pageRs;
} } catch (Exception e) {
e.printStackTrace();
}
return null;
}
index.jsp中显示的部分
<table height="366" border="0" width="400" bgcolor="#cccccc">
<tbody>
<c:forEach items="${requestScope.findAll}" var="post">
<tr>
<td colspan="2" align="center" >${post.title}</td>
</tr>
<tr><td align="right" colspan="2" bgcolor="#ffffff">${post.time}</td></tr>
<tr>
<td colspan="2" align="left" bgcolor="#ffffff">${post.content}</td></tr>
</c:forEach>
</tbody>
</table>调试第一步
调试第二步直接跳到catch
大家帮帮忙吧!~很神奇的bug。
ResultSet rs=pl.pageList(5,"userinfo",currentPage,"desc","id");
使用前new一下调用构造方法,或者写成静态成员变量。