Jsp 为什么我';我收到HTTP状态为500的错误?
我创建了一个简单的JSP页面,并创建了一个名为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时出错 --------------------------------------
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");