我有两个控制器。一个是主控制器,另一个是中间控制器。在中间控制器中,我应该将标头添加到HTTPRequest。添加后我应该将其重定向到主控制器,我应该检查我添加的标头。我怎样才能做到这一点?任何人都可以帮我这个吗?请........
答案 0 :(得分:1)
似乎是一个使用Servlet Filter的好地方。如果要预处理传入的请求,可以使用servlet过滤器,然后将其链接到相应的servlet。
有关详细信息,请参阅BalusC Answer。
如果不是这种情况,您只能转发请求,如:
request.getRequestDispatcher("/yourServlet").forward(request, response); // forward to the main servlet
答案 1 :(得分:0)
转发调度
getServletContext().getRequestDispatcher().forward("second page");
请求转发由JSF Controller Servlet在内部完成到另一个资源。浏览器不知道Web容器的服务器端发生了什么。所以它仍然认为它是趋向于原始请求并在其地址栏中显示原始URL。但是,显示的页面内容来自第二页。
重定向调度
response.sendRedirect("second page");
在这种情况下,JSF Controller Servlet指示客户端浏览器(通过HTTP响应头)获取另一个URL。因此,浏览器完全获取新URL并在其地址栏中显示第二个URL。这可能会导致轻微的性能延迟
来自here
答案 2 :(得分:0)
我认为你需要转发请求而不是重定向。
RequestDispatcher dispatcher= request.getRequestDispatcher("servlet-mapped-url");
dispatcher.forward(request, response);