跳转(Forward)和页面重定向(Redirect)的区别
  fztgkkRjHIsV 2023年11月09日 35 0


Redirect


1. 用户浏览器向 http://localhost:8080/demo/start.xhtml 发送 GET 请求。


2. JSF收到请求,返回 start.xhtml 页面。


3. 用户点击页面中的按钮。


4. JSF收到请求, 向浏览器发送 Redirect 指令(3XX的HTTP状态值)。


5. 浏览器收到指令, 发送另一个 GET 到 http://localhost:8080/demo/page1.xhtml。


6.JSF返回page1.xhtml。


7. 浏览器显示page1.xhtml。这时地址栏里显示的是page1.xhtml。



Forward



1. 用户浏览器向 http://localhost:8080/demo/start.xhtml 发送 GET 请求。



2. JSF收到请求,返回 start.xhtml 页面。



3. 用户点击页面中的按钮。



4. JSF收到请求, 直接渲染page1.xhtml页面并返回给浏览器



5. 浏览器显示 page1.xhtml。这时候地址栏里显示的还是start.xhtml









由此可看出,重定向要比跳转多发送一个请求,所以相对要慢一些。JSF默认全部采用 Forward的方式跳转页面。如果想要重定向页面,可以在导航中添加 <redirect />,或者在 h:commandButton的action属性后添加 "faces-redirect=true":



    1. <h:form>  
    2. <h:commandButton action="page1?faces-redirect=true" value="Page1" />  
    3. </h:form>  
    4.



    【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

    1. 分享:
    最后一次编辑于 2023年11月09日 0

    暂无评论

    推荐阅读
      wURKzOHw9Irf   2023年12月24日   51   0   0 icoHTMLhtmlico
      8l4CZpTOKa7P   2023年12月26日   55   0   0 htmlhtml
      dwHry2iKGG0I   2023年12月26日   51   0   0 githubgithubhtmlhtml
      5iQTA4J0tGQG   2023年12月23日   103   0   0 pythonHTMLPythonhtml
    fztgkkRjHIsV