一、 URLRewirte的用处
1.满足搜索引擎的要求。
2.隐藏技术实现,提高网站的移植性。
3.满足美感的要求(个人感觉这个用处太牵强)。
二、 项目部署
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文件中加入以下:
<!-- 动态地址静态化 -->
Java代码
- <filter>
- <filter-name>UrlRewriteFilter</filter-name>
-
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
-
<init-param>
-
<param-name>logLevel</param-name>
- <param-value>WARN</param-value>
-
</init-param>
- </filter>
-
- <filter-mapping>
-
<filter-name>UrlRewriteFilter</filter-name>
-
<url-pattern>/*</url-pattern>
- </filter-mapping>
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5.需要配置urlrewrite.xml文件来实现url静态化,下面将详细说明
三、 如何静态化
到这里相关的配置已经完成,下面看如何把动态地址静态化:
(1)普通url静态化
例如:要把http://localhost/prjtest/user/list.jsp转换成http://localhost/prjtest/user/list.html
这种是最简单的,当一个servlet跳转到list.jsp页面列出user列表时,在urlrewrite.xml中这样配置:
Java代码
- <rule>
-
- <from>^/user/list.html</from>
-
- <to>/user/list.jsp</to>
-
- lt;/rule>
<rule>
<from>^/user/list.html</from>
<to>/user/list.jsp</to>
</rule>
当请求/user/list.html这个页面时,实际上相当于请求/user/list.jsp页面
在servlet的跳转要这样写:
Java代码
- response.sendRedirect("./user/list.html");
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中这样配置:
Java代码
- <rule>
-
-
<from>^/user/view/([0-9]+)_([a-z]+).html$</from>
-
-
<to>/user/view.jsp?cid=$1&cname=$2</to>
-
- </rule>
<rule>
<from>^/user/view/([0-9]+)_([a-z]+).html$</from>
<to>/user/view.jsp?cid=$1&cname=$2</to>
</rule>
当请求/user/view/1_admin.html这个页面时,实际上相当于请求/user/list.jsp?cid=1&cname=admin页面,在servlet的跳转要这样写(cid,cname为变量):
[url]response.sendRedirect("./user/view/"+ cid +"_"+ cname +".html");[/url]
注意:配置文件中用"&"来代替"&"。
一个通用的正则表达式:[a-zA-Z0-9]+
四、 小结
使用URLRewirte可以方便的进行地址伪静态化,配置规则也相对比较方便。不过在项目设计的时候需要制定地址匹配规则,以使在开发的过程中直接利用该规则进行编码。如果是对已有的项目进行地址伪静态化比较麻烦,需要对所有的页面、跳转进行修改,工作量较大,同时也容易忽略一些URL。
一句话,其实它并没有达到静态化要求,只是相当于将地址进行了改写。
分享到:
相关推荐
UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm解决原始地址form回传的问题 例如:/products.aspx?category=books 转换为/products/Books.aspx或/products/Books.html(需要在IIS中建立映射)...
UrlReWrite(Url重写或伪静态)UrlReWrite(Url重写或伪静态)
通过UrlRewrite组件实现url重写,可以优化url,对搜索引擎友好,被收录质量高等好处。
java urlrewrite 实现伪静态化 demo源码 http://www.cnblogs.com/liujun0930/archive/2011/12/05/2276553.html
Url Rewrite 实现jsp页面伪静态化_凌风_.doc
使用URL Rewrite实现网站的伪静态实例,包括urlrewritefilter-4.0.3.jar
asp net UrlReWrite Url重写或伪静态 完美示例源码
用urlrewrite实现的asp.net 网站的伪静态
Rewrite 在iis下 url 伪静态 Rewrite 在iis下 url 伪静态
商业编程-源码-UrlReWrite(Url重写或伪静态)完美示例源码.zip
IIS中使用的伪静态组件 Url Rewrite伪静态组件
Discuz! X2 配置URL伪静态Rewrite规则,里面详细讲解了apache服务器下 Discuz! X2 配置URL伪静态Rewrite规则和IIS下得Discuz! X2 配置URL伪静态Rewrite规则
URLRewrite.dll 包含程序集:URLRewrite.dll 与一个源码示例程序。 更好帮助大家学习。
本例把它命名为:UrlRewrite,在创建的时候,选择勾选“Add JSTL libraries to WEB-INF/lib folder ”(注:因为项目中会用到jstl 核心标签库),然后再把urlrewrite-2.6.0.jar导入到项目Bulid Path路径下,最后再加入...
JAVA实现URL rewrite伪静态_.docx
ISAPI_Rewrite,ISAPI_Rewrite用来实现伪静态,将动态网页通过重写URL的方法实现去掉动态网页的参数!它的行为是像Apache的mod_Rewrite ,但专为微软的Internet信息服务( IIS )。 IIS配置相当简单,配置好之后就有...
PHPWAMP内置IIS站点管理的相关伪静态安装,采用PHPWAMP的IIS站点管理可以在IIS服务器上同时运行多个不同的PHP版本