【问题标题】:Difference between jsp redirect url tag and response.sendRedirect() methodjsp重定向url标签和response.sendRedirect()方法的区别
【发布时间】:2021-03-07 00:05:25
【问题描述】:

我有以下代码可以从 jsp 重定向到新页面。

   //response.sendRedirect("someJspPage.jsp");  
   %>
      <c:redirect url="someJspPage.jsp" />
   <%       

我看到第一行被注释掉了。但我不确定为什么。 我想知道response.sendRedirect&lt;c:redirect url= 之间的确切区别是什么 任何人都可以帮助我了解重定向在这两种情况下的工作方式有何不同。我正在为混合内容问题编写解决方案,但我需要先了解这种差异。

【问题讨论】:

    标签: javascript java jsp jstl jsp-tags


    【解决方案1】:

    两者的工作方式相同。我相信您已经知道标签c:redirect 是来自JSTL(JSP 标准标签库)的标签,用于将请求重定向到另一个资源。与任何 JSP 标记一样,使用它的好处是生成动态 HTML,而无需将 Java 代码(例如 response.sendRedirect("someJspPage.jsp");)与 HTML 标记混合。

    它还支持c:param 例如

    <c:redirect url="someJspPage.jsp" >
        <c:param name="someVar" value="1234"/>
    </c:redirect>
    

    对于response.sendRedirect,您必须这样做:

    response.sendRedirect("someJspPage.jsp?someVar=1234");
    

    【讨论】:

    • 不完全正确。 &lt;c:param&gt; 在幕后正确使用 URLEncoder#encode()。所以这比你的response.sendRedirect sn-p 试图展示的要多一些工作。
    猜你喜欢
    • 2013-04-23
    • 2011-08-29
    • 2010-10-31
    • 2013-01-17
    • 1970-01-01
    • 2017-09-18
    • 2023-03-13
    • 2019-09-23
    • 1970-01-01
    相关资源
    最近更新 更多