FreeOZ论坛
标题:
两种URL重写方法的比较
[打印本页]
作者:
key
时间:
16-7-2009 23:58
标题:
两种URL重写方法的比较
通过<c:url>标签与HttpServletResponse.encodeURL()两种方法都能重写URL,
但这两种方法是有区别的:
对于http://开头的路由,大家都不支持,这个没有什么好说了。
但余下的部分,两者处理有所不同:
HttpServletResponse.encodeURL()只能使用相对路径,比如
<%
pageContext.setAttribute("u", response.encodeURL("jstl_url_test.jsp"));
pageContext.setAttribute("u2", response.encodeURL("./jstl_url_test.jsp"));
pageContext.setAttribute("u3", response.encodeURL("/jstl_url_test.jsp"));
%>
u = ${u}
u2 = ${u2}
u3 = ${u3}
复制代码
你可以看到u, u2都有重写,但u3没有。另外,还应该注意到,u3没有加入context path。这也是和<c:url>非常不同的地方。
再看<c:url>的表现
u = <c:url value="jstl_url_test.jsp" />
u2 = <c:url value="./jstl_url_test.jsp" />
u3 = <c:url value="/jstl_url_test.jsp" />
复制代码
u和u2的结果和前面的一致,但u3则不同,u3自动加入了context path及进行了url write
欢迎光临 FreeOZ论坛 (https://www.freeoz.org/bbs/)
Powered by Discuz! X3.2