目前我有段代码:
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<jsp:directive.page import="java.util.HashSet" />
<jsp:directive.page import="com.shop.dao.UserDAO" />
<jsp:directive.page import="java.util.Iterator" />
<jsp:directive.page import="java.util.Set;" /><html>
<head>
<title>My JSP 'index.jsp' starting page</title> </head> <body>
<%
UserDAO uu = new UserDAO();
Set set = uu.getAllUsers();
Iterator it = set.iterator();
while (it.hasNext()) {
out.print(it.next());
}
//out.print("dfdfdff");
%>
</body>
</html>
运行出来的结果竟然是报错 其中UserDAO 是在java项目下编写好的 也测试过 代码没有问题 就放在jsp上就出现问题 请大家帮我看看!!错误信息如下:HTTP Status 500 -
________________________________________
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /index.jsp:4744:
45: <%
46: UserDAO uu = new UserDAO();
47: Set set = uu.getAllUsers();
48: Iterator it = set.iterator();
49: while (it.hasNext()) {
50: out.print(it.next());
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
com.shop.dao.UserDAO.getAllUsers(UserDAO.java:150)
org.apache.jsp.index_jsp._jspService(index_jsp.java:96)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<jsp:directive.page import="java.util.HashSet" />
<jsp:directive.page import="com.shop.dao.UserDAO" />
<jsp:directive.page import="java.util.Iterator" />
<jsp:directive.page import="java.util.Set;" /><html>
<head>
<title>My JSP 'index.jsp' starting page</title> </head> <body>
<%
UserDAO uu = new UserDAO();
Set set = uu.getAllUsers();
Iterator it = set.iterator();
while (it.hasNext()) {
out.print(it.next());
}
//out.print("dfdfdff");
%>
</body>
</html>
运行出来的结果竟然是报错 其中UserDAO 是在java项目下编写好的 也测试过 代码没有问题 就放在jsp上就出现问题 请大家帮我看看!!错误信息如下:HTTP Status 500 -
________________________________________
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /index.jsp:4744:
45: <%
46: UserDAO uu = new UserDAO();
47: Set set = uu.getAllUsers();
48: Iterator it = set.iterator();
49: while (it.hasNext()) {
50: out.print(it.next());
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
com.shop.dao.UserDAO.getAllUsers(UserDAO.java:150)
org.apache.jsp.index_jsp._jspService(index_jsp.java:96)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
解决方案 »
- mvnforum中的onlineUser是在哪里实例化的
- 如何判断img的src是否是一个存在的文件?
- 在一个类中如何取到struts-config中的值?
- 象棋 。。有人做过吗?
- 请问谁有soap.war文件?
- 关于Float.parseFloat()的问题,请教高手!谢谢◎
- 用过jspSmartUpload的朋友进来看看吧,怎么会这样????
- 这是怎么回事~~救命~~快帮兄弟!!
- 如何配置稳定,高效果的JSP环境来适应较大型站点,请大家来讨论!
- 发现这里人气急剧下降,特放分,需要的同志请近来!!!
- 有关发送Action请求的问题!
- 请问displaytag的链接可否定义为在新窗口中打开?如果不能,有什么解决办法?
package com.shop.dao;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.Set;import com.shop.domain.User;// 负责对 User类所有对象的 增删改查
public class UserDAO {
public void insertUser(User u){
// 负责将 User 插入数据库
Connection con = null;
PreparedStatement pstmt = null;
try {
Class.forName(DBHelp.DriverName);
con =
DriverManager.getConnection(DBHelp.Url,DBHelp.UName,DBHelp.PWD);
String sql = "insert into users(username,password) values(?,?)";
pstmt= con.prepareStatement(sql);
pstmt.setString(1,u.getUsername());
pstmt.setString(2,u.getPassword());
pstmt.execute();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
pstmt.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void updateUser(User u){
// 负责将 User 更新到数据库
Connection con = null;
PreparedStatement pstmt = null;
try {
Class.forName(DBHelp.DriverName);
con =
DriverManager.getConnection(DBHelp.Url,DBHelp.UName,DBHelp.PWD);
String sql = "update users set username=?,password=? where uid=?";
pstmt= con.prepareStatement(sql);
pstmt.setString(1,u.getUsername());
pstmt.setString(2,u.getPassword());
pstmt.setInt(3,u.getUid());
pstmt.execute();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
pstmt.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void deleteUser(User u){
// 负责将 User 从数据库删除
Connection con = null;
PreparedStatement pstmt = null;
try {
Class.forName(DBHelp.DriverName);
con =
DriverManager.getConnection(DBHelp.Url,DBHelp.UName,DBHelp.PWD);
String sql = "delete from users where uid=?";
pstmt= con.prepareStatement(sql);
pstmt.setInt(1,u.getUid());
pstmt.execute();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
pstmt.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public Set<User> getAllUsers(){
// 得到所有的 User
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Set<User> set = null;
try {
Class.forName(DBHelp.DriverName);
con =
DriverManager.getConnection(DBHelp.Url,DBHelp.UName,DBHelp.PWD);
String sql = "select * from users";
pstmt= con.prepareStatement(sql);
rs= pstmt.executeQuery();
// 查询结果为null,直接返回
if(rs==null)
return null;
set = new HashSet<User>();
User user =null;
while(rs.next()){
user = new User();
user.setUid(rs.getInt("uid"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
set.add(user);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
rs.close();
pstmt.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return set;
}
public Set getUserOfUsername(String username){
// 根据用户名,得到对应的用户
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Set<User> set = null;
try {
Class.forName(DBHelp.DriverName);
con =
DriverManager.getConnection(DBHelp.Url,DBHelp.UName,DBHelp.PWD);
String sql = "select * from users where username=?";
pstmt= con.prepareStatement(sql);
pstmt.setString(1, username);
rs= pstmt.executeQuery();
// 查询结果为null,直接返回
if(rs==null)
return null;
set = new HashSet<User>();
User user =null;
while(rs.next()){
user = new User();
user.setUid(rs.getInt("uid"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
set.add(user);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
rs.close();
pstmt.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return set;
}
}
空指针异常 楼主自己检查一下
因为你的47行代码中返回的是<User>类型你试试