找回密码
 FreeOZ用户注册
查看: 1349|回复: 0
打印 上一主题 下一主题

两种URL重写方法的比较

[复制链接]
跳转到指定楼层
1#
发表于 16-7-2009 23:58:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
通过<c:url>标签与HttpServletResponse.encodeURL()两种方法都能重写URL,
但这两种方法是有区别的:

对于http://开头的路由,大家都不支持,这个没有什么好说了。

但余下的部分,两者处理有所不同:
HttpServletResponse.encodeURL()只能使用相对路径,比如
  1. <%
  2.   pageContext.setAttribute("u", response.encodeURL("jstl_url_test.jsp"));
  3.   pageContext.setAttribute("u2", response.encodeURL("./jstl_url_test.jsp"));
  4.   pageContext.setAttribute("u3", response.encodeURL("/jstl_url_test.jsp"));
  5. %>
  6. u = ${u}

  7. u2 = ${u2}

  8. u3 = ${u3}
复制代码
你可以看到u, u2都有重写,但u3没有。另外,还应该注意到,u3没有加入context path。这也是和<c:url>非常不同的地方。

再看<c:url>的表现
  1. u = <c:url value="jstl_url_test.jsp" />

  2. u2 = <c:url value="./jstl_url_test.jsp" />

  3. u3 = <c:url value="/jstl_url_test.jsp" />
复制代码
u和u2的结果和前面的一致,但u3则不同,u3自动加入了context path及进行了url write
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 14-12-2024 23:56 , Processed in 0.027294 second(s), 17 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表