使用请求调度程序不工作包括来自另一个 servlet 的 servlet

including a servlet from another servlet using request dispatcher not working

dispatcher.include() 不工作

我正在尝试添加一个 servlet,其中包含一个 navbar。当我将它包含在另一个 servlet 中时它起作用了。不过这个好像不行。

addItem 是 class 我想在其中包含 servlet sidenav:

public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
        PrintWriter writer = response.getWriter();
        operations operations=new operations();

        RequestDispatcher dispatcher;


        writer.println("<body>");

        dispatcher=request.getRequestDispatcher("sidenav");
        dispatcher.include(request,response);

        writer.println("<h1> Add new Item</h1>");

        writer.println("<body>");
    }

sidenav class 看起来像这样:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

        PrintWriter writer=response.getWriter();



        writer.println("<div class='sidenav'>");

        writer.println("<div class='item'>");
        writer.println("<a href='addUser'>Add new user</a>");
        writer.println("</div>");

        writer.println("<div class='item'>");
        writer.println("<a href='addInventory'>Add to inventory</a>");
        writer.println("</div>");

        writer.println("<div class='item'>");
        writer.println("<a href='viewReport'>View report</a>");
        writer.println("</div>");

        writer.println("<div class='item'>");
        writer.println("<a href='recordSale'>Record sold items</a>");
        writer.println("</div>");

        writer.println("<div class='item'>");
        writer.println("<a href='addItem'>Add new item</a>");
        writer.println("</div>");

        writer.println("<div class='item'>");
        writer.println("<a href='dayEnd'>Do day end</a>");
        writer.println("</div>");

        writer.println("<div class='item'>");
        writer.println("<a href='monthEnd'>Do month end</a>");
        writer.println("</div>");

        writer.println("<div class='item'>");
        writer.println("<a href='yearEnd'>Do year end</a>");
        writer.println("</div>");

        writer.println("</div>");

    }

sidenav servlet 从 class managerHome 调用,如下所示:

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

        PrintWriter writer= response.getWriter();

        operations operations=new operations();

        RequestDispatcher dispatcher=request.getRequestDispatcher("headerHtml");
        dispatcher.include(request,response);


        writer.println("<body>");

        dispatcher=request.getRequestDispatcher("sidenav");
        dispatcher.include(request,response);

        HttpSession session=request.getSession(false);
        String user= (String) session.getAttribute("user");

        writer.println("<div class='main'>");
        writer.println("<h1>Welcome back"+user+"</h1>");
        writer.println("</div>");

        writer.println("</body>");


    }

如您所见,我已经包含了来自 managerHome servlet 的 sidenav servlet,它工作正常

我希望侧面导航出现在 addItem 页面中,但它似乎不起作用。

提前致谢

经过一番研究,我发现了我的问题。我试图包括 sidenav,它有 doGet(),而 addItemdoPost()。显然,您无法发送请求或包含来自不具有相同覆盖方法的 servlet 的 servlet。