使用URLRewrite实现url地址伪静态化

1使用URLRewrite实现url地址伪静态化

1.1URLRewirte的用处

1. 满足搜索引擎的要求。
2. 隐藏技术实现,提高网站的移植性。
3. 满足美感的要求 ( 个人感觉这个用处太牵强 )

1.2项目部署

1. 首先在 http //tuckey.org/urlrewrite/ 下载 urlrewirtefilter,现在有2.6.0和3.2.0两个版本,这里我选择的是前面一个稳定版本
2. 解压所下载的文件 , urlrewrite- 2.6.0 .jar 复制到项目的 WebRoot/WEB-INF/lib/ 目录下 , 然后编译。
3. urlrewrite.xml 复制到项目的 WebRoot/WEB-INF/ 目录下
4. web.xml 文件中加入以下:
1 <!-- 动态地址静态化 -->
2 <filter>
3   <filter-name>UrlRewriteFilter</filter-name>
4   <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
5   <init-param>
6     <param-name>logLevel</param-name>
7     <param-value>WARN</param-value>
8   </init-param>
9 </filter>
10 <filter-mapping>
11   <filter-name>UrlRewriteFilter</filter-name>
12   <url-pattern>/*</url-pattern>
13 </filter-mapping>
5. 需要配置 urlrewrite.xml 文件来实现 url 静态化 , 下面将详细说明

1.3 如何静态化

到这里相关的配置已经完成 , 下面看如何把动态地址静态化:
(1) 普通 url 静态化
例如:要把 http //localhost/prjtest/user/list.jsp 转换成 http //localhost/prjtest/user/list.html
这种是最简单的 , 当一个 servlet 跳转到 list.jsp 页面列出 user 列表时 , urlrewrite.xml 中这样配置:
1 <rule>
2   <from>^/user/list.html</from>
3   <to>/user/list.jsp</to>
4 </rule>
当请求 /user/list.html 这个页面时 , 实际上相当于请求 /user/list.jsp 页面
servlet 的跳转要这样写:
response.sendRedirect("./user/list.html");
(2) 带参数的 url 静态化
例如:要把 http //localhost/prjtest/user/view.jsp?cid=1&cname=admin 转换成
       http //localhost/prjtest/user/view/1_admin.html
urlrewrite.xml 中这样配置:
1 <rule>
2   <from>^/user/view/([0-9]+)_([a-z]+).html$</from>
3   <to>/user/view.jsp?cid=$1&cname=$2</to>
4 </rule>
当请求 /user/view/1_admin.html 这个页面时 , 实际上相当于请求 /user/list.jsp?cid=1&cname=admin 页面,在 servlet 的跳转要这样写 (cid,cname 为变量 )
response.sendRedirect("./user/view/"+ cid +"_"+ cname +".html");
注意:配置文件中用 "&" 来代替 "&"
一个通用的正则表达式: [a-zA-Z0-9]+

1.4 小结

       使用 URLRewirte 可以方便的进行地址伪静态化,配置规则也相对比较方便。不过在项目设计的时候需要制定地址匹配规则,以使在开发的过程中直接利用该规则进行编码。如果是对已有的项目进行地址伪静态化比较麻烦,需要对所有的页面、跳转进行修改,工作量较大,同时也容易忽略一些 URL
       一句话,其实它并没有达到静态化要求,只是相当于将地址进行了改写。

你可能感兴趣的:(职场,URLRewirte,休闲,静态化)