URLRewrite配置和使用


URLRewrite  备忘 我们为什么要使用 URLRewrite 重写 url 技术呢,在网上搜了一下,有篇文章说是有主 要三个原因(会用搜索的人一定能在网上搜索到)  1、满足搜索引擎的要求  2、隐藏技术实现,提高网站的移植性  3、满足美感的要求 由于本人才疏学浅, 对于第一条和第二条的前半句还是比较赞同, 但对于第二条后半句, 个人没有什么感觉,也没用通过它移植过,所以不多说。基于第三条,我就不发表言论了。 废话不多说了。看看怎么使用吧。 创建一个 web 工程,结构目录文件如下(注意工程中我们需要使用到 urlrewrite.jar 包)  Url  重写的主要内容就是在 web­inf 中要编写 urlrewrite.xml 文件,其实内容很简单。 本例中的 xml 编写的内容如下 我们先来分析一下 rule 规则   ^/page/(.*)$  /page/$1.jsp    from 代表你在访问网站的时候,浏览器地址栏中显示的 URL  to  代表将浏览器中显示的 URL 转换后的地址,也就是你网站中真正访问的 URL  以之前我们建立的 web 项目为列  (这里只是简略的做了一下转换,既不显示路径后缀)  我们访问  http://localhost:8080/URLRewrite/page/first  而实际我们访问的是 http://localhost:8080/URLRewrite/page/first.jsp  我们再来说说  ,outbond­rule  在网上的说的不多。其实 RULRewrite 本身的说明已经写的很清楚了。 The  outbound­rule  specifies  that  when  response.encodeURL  is  called (if you are using JSTL c:url) the url /rewrite­status will be  rewritten to /test/status/.  The above rule and this outbound­rule means that end users should  never see the url /rewrite­status only /test/status/ both in thier  location bar and in hyperlinks 在使用 response.encodeURL 或是 c:url 的时候,路径 rewrite­status 将被重写成 /test/status/ 以上的 rule 和 outbound­rule 将使最终用户在他们的地址栏或链接中都不会看到 /rewrite­status 而只能看到重写后的/test/status/ 其它主要是用于解决我们在页面中显示链接的问题,如我们在页面上有一个链接 页面代码如下 我们对链接使用 respone.encodeURL 进行编码,用于跳转到第二页。 但是我们注意我们页面浏览器的状态栏。它已经根据我们的规则进行了转换。 但是这里我们一定要注意一个问题 使用转换过来的 URL,一定要符合   ^/page/(.*)$  /page/$1.jsp  也就是说,我们的 encodeURL 路径为../second.jsp?para=first 首先根据 转换为我们在状态栏中看到的地址 http://localhost:8080/URLRewrite/page/second, 然后再根据的根 据,将其路径转换为http://localhost:8080/URLRewrite/page/second.jsp 来 访问我们站点中真正的路径。 这样我们就可以全部将我们的真实路径重写掉。对外只暴露重写后的地址。 That's all today.
还剩2页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 2 人已下载

下载pdf

pdf贡献者

chenhb

贡献于2011-08-07

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf