我有一个问题,我不知道这是一个错误,还是我做错了什么。
我有2个servlet。两者都映射在我的GuiceServletContextListener中的ServletModule中:
serve("/", "/index.jsp").with(MainEntryServlet.class);
serve("/foobar.jsp").with(FooBarServlet.class);
在我的FooBarServlet中,我执行以下操作:
String url = "/index.jsp?target=foo.jsp";
request.getRequestDispatcher(url).forward(request, response);
按预期调用MainEntryServlet,但请求参数中缺少参数target
。这仅在从一个servlet转发到另一个servlet时发生。如果我将请求转发给JSP,一切正常。
当我在web.xml中映射servlet而不是ServletModule时,target
参数不会丢失。所以我猜Guice导致了这个问题。我正在使用Tomcat 8作为servlet容器。
知道如何解决这个问题吗?
答案 0 :(得分:0)
我很可能没有得到你的问题,但你试过这个吗?
String url = "/index.jsp";
request.setAttribute("target", "foo.jsp")
request.getRequestDispatcher(url).forward(request, response);
要为响应设置参数,您可以使用setAttribute
方法。