jsp - 为什么我收到 HTTP Status 500 错误?

标签 jsp jakarta-ee tomcat servlets nullpointerexception

<分区>

我创建了一个简单的 JSP 页面并创建了一个名为 UserController.java 的 Servlet,它位于 com.pro3.controller 包内。在 jsp 页面中,我有一个带有 get 方法的表单。当我提交表单时,它失败并出现以下异常:

HTTP 状态 500 - javax.servlet.ServletException:实例化 servlet 类 com.pro3.controller.UserController 时出错

--------------------------------------------------------------------------------

type Exception report

message javax.servlet.ServletException: Error instantiating servlet class com.pro3.controller.UserController

description The server encountered an internal error that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: javax.servlet.ServletException: Error instantiating servlet class com.pro3.controller.UserController
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)


root cause 

javax.servlet.ServletException: Error instantiating servlet class com.pro3.controller.UserController
    org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709)
    org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:62)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)


root cause 

java.lang.NullPointerException
    java.util.Properties$LineReader.readLine(Properties.java:418)
    java.util.Properties.load0(Properties.java:337)
    java.util.Properties.load(Properties.java:325)
    com.pro3.util.DbUtil.getConnection(DbUtil.java:26)
    com.pro3.dao.UserDao.<init>(UserDao.java:19)
    com.pro3.controller.UserController.<init>(UserController.java:27)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    java.lang.Class.newInstance0(Class.java:355)
    java.lang.Class.newInstance(Class.java:308)
    org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709)
    org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:62)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

谁能帮我解决这个问题。

public class DbUtil 
{
    public static Connection connection = null;
    
    public static Connection getConnection()
    {
        if(connection!=null)
            return connection;
        else
        {
            try
            {
                Properties prop=new Properties();
                InputStream inputStream=DbUtil.class.getClassLoader().getResourceAsStream("/db.properities");
                prop.load(inputStream);
                
                String driver=prop.getProperty("driver");
                String url=prop.getProperty("url");
                String user=prop.getProperty("user");
                String password=prop.getProperty("password");
                
                Class.forName(driver);
                connection=DriverManager.getConnection(url,user,password);
                
            }catch(ClassNotFoundException e){
                e.printStackTrace();
        

这是空指针异常:

public class UserController extends HttpServlet 
{
    private static final long serialVersionUID = 1L;
    private static String INSERT_OR_EDIT="/user.jsp";
    private static String LIST_USER="/listuser.jsp";
    private UserDao dao;
    
    public UserController() 
    {
        super();
        dao = new UserDao();
    }
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
        {
            String forward="";
            String action = request.getParameter("action");
            
            if(action.equalsIgnoreCase("delete"))
            {
                int userId=Integer.parseInt(request.getParameter("userid"));
                dao.deleteUser(userId);
                forward=LIST_USER;
                request.setAttribute("users", dao.getAllUsers());
            }
            else if(action.equalsIgnoreCase("edit"))
            {
                forward=INSERT_OR_EDIT;
                int userId=Integer.parseInt(request.getParameter("userid"));
                User user=dao.getUserById(userId);
                request.setAttribute("user", user);
            }
            else if(action.equalsIgnoreCase("listUser"))
            {
                forward=LIST_USER;
                request.setAttribute("users", dao.getAllUsers());
            }
            else
            {
                forward=INSERT_OR_EDIT;
            }
            RequestDispatcher view=request.getRequestDispatcher(forward);
            view.forward(request, response);
        }
        
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
        {
        User user=new User();
        user.setFirstName(request.getParameter("firstname"));
        user.setLastName(request.getParameter("lastname"));
       try
       {
           Date dob = new SimpleDateFormat("dd/mm/yyyy").parse(request.getParameter("dob"));
           user.setDob(dob);
       }
       catch(ParseException e)
       {
           e.printStackTrace();
       }
        user.setEmail(request.getParameter("email"));
        String userid=request.getParameter("userid");
        if(user==null||userid.isEmpty())    
        {
            dao.addUser(user);
        }
        else
        {
            user.setUserid(Integer.parseInt(userid));
            dao.updateUser(user);
        }
        RequestDispatcher view=request.getRequestDispatcher(LIST_USER);
        request.setAttribute("users", dao.getAllUsers());
        view.forward(request, response);
     }
}

Pablo Lozano:他发现了一些错误,然后我就去做了,现在我遇到了这种错误。

HTTP Status 500 - java.lang.NullPointerException

-------------------------------------------------------------------------------- type

异常报告消息java.lang.NullPointerException

description The server encountered an internal error that prevented it from fulfilling this request.

异常

org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:502) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:430) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

根本原因

java.lang.NullPointerException

com.pro3.dao.UserDao.getAllUsers(UserDao.java:74) com.pro3.controller.UserController.doGet(UserController.java:51) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709) org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680) org.apache.jsp.index_jsp._jspService(index_jsp.java:62) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

最佳答案

DbUtil.class.getClassLoader().getResourceAsStream("/db.properities");

尝试写db.properties而不是db.properities

关于jsp - 为什么我收到 HTTP Status 500 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21479861/

相关文章:

java - 轮询服务器状态的方法

Java - 数据库主键的字符串转换

java - Office 加载项开发 - 格式错误的 GET URL (_host_Info=...)

rest - 通过代理连接到本地主机重定向

javascript - c :foreach tag is not working for Google map in javascript jsp

java - 通过在 JSP 页面中使用预先挂起的 "get"来别名对象方法

javascript - 从iFrame中获取内容,错误在哪里?

jsp - JSP EL、JSF EL 和 Unified EL 之间的区别

java - 如何从 JSP tomcat 服务器运行 jar

java - 打破 ArrayList 并在 Struts 1 中显示