Jsp 为什么我';我收到HTTP状态为500的错误?

Jsp 为什么我';我收到HTTP状态为500的错误?,jsp,jakarta-ee,tomcat,servlets,nullpointerexception,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时出错 --------------------------------------

我创建了一个简单的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 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);
     }
}

巴勃罗·洛扎诺:他发现了一些错误,然后我就去做,现在我发现了这种错误

HTTP状态500-java.lang.NullPointerException

--------------------------------------------------------------------------------类型

异常报告消息java.lang.NullPointerException

说明服务器遇到阻止它的内部错误 不履行这一要求

例外情况

org.apache.jasper.jaspereException: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) javaservlet.http.HttpServlet.service(HttpServlet.java:723)

根本原因

java.lang.NullPointerException

getAllUsers(UserDao.java:74) com.pro3.controller.UserController.doGet(UserController.java:51) javaservlet.http.HttpServlet.service(HttpServlet.java:617) javaservlet.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\u jsp.\u jsp服务(index\u jsp.java:62) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javaservlet.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) javaservlet.http.HttpServlet.service(HttpServlet.java:723)


它表示
java.lang.NullPointerException
,因此存在一个未实例化的对象。我假设您在
com.pro3.util.DbUtil.getConnection
中使用了
java.lang.Propertis#load(InputStream)
,因此您可能以错误的方式实例化了它(如果有的话)

因此,您不能从DbUtils.class使用getResourceAsStream(我假设,如果您只将ptoperties放在同一个包中,它就会工作)。请了解如何在Servlet中正确加载属性

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

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

首先,请共享您的
DbUtil.getConnection()
方法,以便我们了解如何创建
InputStream
。您正在尝试查找属性文件,但文件名拼写错误
DbUtil.class.getClassLoader().getResourceAsStream("/db.properities");