[英]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
.我正在尝试包含一个包含侧面
navbar
的servlet
。 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.