Servlets 如何实现从遗留Servlet到JSF2.0的服务器端重定向?
我目前正在进行客户端重定向,以从遗留servlet(应用程序的旧部分)获取JSF页面(应用程序的新部分)。如果可能的话,我更愿意执行服务器端重定向,这样我就可以在请求中放置JSF页面可以接收的项目。(遗留servlet和JSF页面之间需要“传递”一组数据,我不希望将这些数据放在客户端重定向URL(作为URL参数)中,而是放在服务器端) 如果有一种方法可以在servlet(而不是Faces servlet)和JSF页面之间进行服务器端重定向,您能告诉我如何进行吗?只需调用通常的方法即可。所有servlet也会拦截转发的请求。您只需要确保前进路径与Servlets 如何实现从遗留Servlet到JSF2.0的服务器端重定向?,servlets,jsf-2,Servlets,Jsf 2,我目前正在进行客户端重定向,以从遗留servlet(应用程序的旧部分)获取JSF页面(应用程序的新部分)。如果可能的话,我更愿意执行服务器端重定向,这样我就可以在请求中放置JSF页面可以接收的项目。(遗留servlet和JSF页面之间需要“传递”一组数据,我不希望将这些数据放在客户端重定向URL(作为URL参数)中,而是放在服务器端) 如果有一种方法可以在servlet(而不是Faces servlet)和JSF页面之间进行服务器端重定向,您能告诉我如何进行吗?只需调用通常的方法即可。所有ser
FacesServlet
映射匹配。假设已将其映射到*.xhtml
,则应执行以下操作:
request.getRequestDispatcher("/page.xhtml").forward(request, response);
如果要防止最终用户在不调用servlet的情况下直接打开页面,则可以在必要时将页面放置在/WEB-INF
文件夹中
request.getRequestDispatcher("/WEB-INF/page.xhtml").forward(request, response);
我应该提到的是,这些都在不同的战争中,有着不同的背景根源。这会是一个问题吗?如果服务器没有配置为共享上下文(默认情况下),那么是的,这将是一个拦截器。否则,您只需通过
ServletContext#getContext()
获取另一个上下文,并从中获取请求分派器。例如,getServletContext().getContext(“otherAppName”).GetRequestDispatcher(“/WEB-INF/page.xhtml”).forward(请求,响应)代码>不清楚您使用的是哪台服务器,但以Tomcat为例,请使用关键字“crosscontext”查看其文档。非常感谢——顺便说一句,我使用的是WebLogic 11g。我会试一试的。谢谢