繁体   English   中英

StandardWrapperValve [web.dbServlet]:servlet web.dbServlet的Servlet.service()抛出异常java.lang.NullPointerException

[英]StandardWrapperValve[web.dbServlet]: Servlet.service() for servlet web.dbServlet threw exception java.lang.NullPointerException

我尝试在表中插入一些信息,但出现这样的错误(NullPointerException)。 也许这是导致请求为空的原因,但我不确定。

这是有错误的日志: 在此处输入图片描述

第一个Servlet:

@WebServlet("/clientServlet")
public class clientServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request,
                     HttpServletResponse response)
        throws ServletException, IOException {

    Client client = new Client();
    client.setName(request.getParameter("name"));
    client.setSurname(request.getParameter("surname"));
    HttpSession session = request.getSession();
    session.setAttribute(sessionKey.client, client);
    response.sendRedirect("addTour.html");

}

第二个:

@WebServlet("/tourServlet")
public class tourServlet extends HttpServlet{

private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    HttpSession session = request.getSession();

    Tour tour = new Tour();
    tour.setCountryTo(request.getParameter("countryTo"));
    tour.setAmountOfDays(request.getParameter("amountOfDays"));
    session.setAttribute(sessionKey.tour, tour);
    response.sendRedirect("final.jsp");
}

问题出现在此Servlet中:

@WebServlet("/dbServlet")
public class dbServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

public dbServlet() {
    super();
}

 protected void doGet(HttpServletRequest request, HttpServletResponse   response) throws ServletException, IOException { 
    try {
        IRepositoryCatalog catalog = new  RepositoryCatalog("jdbc:hsqldb:hsql://localhost/workdb");
        HttpSession session = request.getSession();
        Client client = (Client) session.getAttribute(sessionKey.client);
        Tour tour = (Tour) session.getAttribute(sessionKey.tour);
        catalog.Clients().add(client);
        catalog.saveAndClose();

        catalog.Tours().add(tour);
        catalog.saveAndClose();
        catalog.saveAndClose();

    } catch (SQLException e) {
        e.printStackTrace();
    } catch (ClassNotFoundException a) {
        a.printStackTrace();    
} 
}

乍一看,我可以说也许第一个和第二个servlet是用于POST方法的,所以执行doGet并尝试“ getParameter”时,您将获得空对象,因此抛出NullPointerException。 您可以发表一些您的看法吗?

(我会发表评论,但我还不能)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM