嗨,
这个问题来自于以前由已应答 BalusC提出的问题。答案摘录如下:
只有在RequestDispatcher#forward()转发的情况下才会发生这种情况。在转发过程中,same容器基本上对视图重用相同的HTTP请求/响应(JSP/XHTML页面)。它不强制/指示网页浏览器发送全新的请求。
这意味着每一个新的视图都使用前向呈现。以下是我的问题:
<redirect/>中使用faces-config.xml时,地址栏中的URL会被更改吗?发布于 2011-01-28 12:18:11
如果是上述情况,则所有显示的视图都具有相同的请求?因为,我们总是在地址栏中看到相同的URL。
如果它涉及一个HTTP请求,而JSF操作导航到一个不同的视图,那么每个saldo在同一个请求中确实会有两个不同的视图。一个用于初始视图,用于收集/转换/验证所需的请求参数并更新模型值;另一个用于用于显示某些结果的结果视图。
是否为新请求保留了前一个请求中的值?
在前进中,没有新请求的方法。这是相同的请求。
在这种情况下,如果每个请求都是相同的,那么它是否就像长时间存储在会话中一样。我对JSF的视图处理有点困惑。想了解更多JSF的内部工作流程。
情况绝对不是这样。至于您的困惑,暂时搁置JSF并使用普通的JSP/Servlet (这是JSF在幕后使用的)可能会有帮助。我认为以下链接可能有助于了解基本JSP/Servlet如何工作,以及JSP/Servlet之上的平均MVC框架是如何工作的:
当我们在
<redirect/>中使用faces-config.xml时,地址栏中的URL会被更改吗?
是。HTTP重定向发送HTTP报头,这反过来指示location: newpage.jsf浏览器在给定位置上触发新HTTP请求。这种情况反映在浏览器地址栏中。您可能希望安装HTTP调试工具(如火虫或Fiddler2 )来跟踪HTTP通信量。您将看到在同一个请求中发生转发,而重定向则伴随着一个新请求。
发布于 2011-01-28 05:49:50
如果是上述情况,则所有显示的视图都具有相同的请求?因为,我们总是在地址栏中看到相同的URL。
如果网址在网页浏览器中是相同的,那么就有两种情况。或者像他提到的那样转发相同的请求,或者使用相同的URL发出新的GET请求,这种情况较小。
是否为新请求保留了前一个请求中的值?
请求生命周期将从请求到响应。因此,在响应之后,所有具有请求作用域的托管bean都将被销毁。
当我们使用inFacs-config.xml时,地址栏中的URL会被更改吗?
是的,它将指示浏览器对新URL发出新的GET请求。
https://stackoverflow.com/questions/4824840
复制相似问题