jsp重定向url标记和response.sendRedirect()方法之间的区别



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

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

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

两者的工作方式相似。我相信您已经知道标记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");

最新更新