简体   繁体   English

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

[英]including a servlet from another servlet using request dispatcher not working

dispatcher.include() not working dispatcher.include()不工作

I am trying to include a servlet which includes a side navbar .我正在尝试包含一个包含侧面navbarservlet It has worked when I included it in another servlet .当我将它包含在另一个servlet时它起作用了。 But it doesn't seem to work on this one.但它似乎不适用于这个。

addItem is the class in which i want to include the servlet sidenav: addItem是我想在其中包含 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>");
    }

And sidenav class looks like this: sidenav类看起来像这样:

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 is called from the class managerHome which looks like this: sidenav servlet从类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>");


    }

As you see I have included the sidenav servlet from the managerHome servlet and it work's fine如您所见,我已经包含了 managerHome servlet 中的 sidenav servlet,它工作正常

I am expecting the side navigation to appear in the addItem page but it does not seem to work.我希望侧边导航出现在 addItem 页面中,但它似乎不起作用。

Thank you in advance先感谢您

After some research I have figured out my problem.经过一番研究,我发现了我的问题。 I was trying to include sidenav which has doGet() from addItem which has doPost() .我试图从具有doPost() addItem包含具有doGet() sidenav Apparently you can not send request or include a servlet from a servlet that do not have the same overridden method.显然,您不能发送请求或包含来自没有相同覆盖方法的 servlet 的 servlet。

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

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