Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Servlets 如何实现从遗留Servlet到JSF2.0的服务器端重定向?_Servlets_Jsf 2 - Fatal编程技术网

Servlets 如何实现从遗留Servlet到JSF2.0的服务器端重定向?

Servlets 如何实现从遗留Servlet到JSF2.0的服务器端重定向?,servlets,jsf-2,Servlets,Jsf 2,我目前正在进行客户端重定向,以从遗留servlet(应用程序的旧部分)获取JSF页面(应用程序的新部分)。如果可能的话,我更愿意执行服务器端重定向,这样我就可以在请求中放置JSF页面可以接收的项目。(遗留servlet和JSF页面之间需要“传递”一组数据,我不希望将这些数据放在客户端重定向URL(作为URL参数)中,而是放在服务器端) 如果有一种方法可以在servlet(而不是Faces servlet)和JSF页面之间进行服务器端重定向,您能告诉我如何进行吗?只需调用通常的方法即可。所有ser

我目前正在进行客户端重定向,以从遗留servlet(应用程序的旧部分)获取JSF页面(应用程序的新部分)。如果可能的话,我更愿意执行服务器端重定向,这样我就可以在请求中放置JSF页面可以接收的项目。(遗留servlet和JSF页面之间需要“传递”一组数据,我不希望将这些数据放在客户端重定向URL(作为URL参数)中,而是放在服务器端)

如果有一种方法可以在servlet(而不是Faces servlet)和JSF页面之间进行服务器端重定向,您能告诉我如何进行吗?

只需调用通常的方法即可。所有servlet也会拦截转发的请求。您只需要确保前进路径与
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。我会试一试的。谢谢