强大的URL重写技术,可以使我们的URL地址更加简洁美观,不再为?号面一大堆的参数而捆饶.还可以是我们的用户无法知道我们使用的到底是那种Web开发技术,让我们的所有网页后缀可以任意变换,用JSP开发的网站,可以让访问地址的网页后缀变成*.html,*.asp,*.aspx,*.php,*.xml,甚至可以是a/,*.abc等等,使得网页更加安全,从URL里永远看不到真实的目录结构.
1.下载
http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.4-src.zip
http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.4.zip
http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.4.zip
2.解压得到urlrewrite-2.4.jar和urlrewrite.xml.
3.创建一个测试用的webapp.
先建立一个Servlet,或者一个JSP文件,随便输出一些东西.
4.引入urlrewrite-2.4.jar,把jar包放到WEB-INF/lib目录下:
编辑web.xml,添加以下内容:
<
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
>
DEBUG
</
param-value
>
</
init-param
>
</
filter
>
<
filter-mapping
>
<
filter-name
>
UrlRewriteFilter
</
filter-name
>
<
url-pattern
>
/*
</
url-pattern
>
</
filter-mapping
>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
5.在WEB-INF目录下创建urlrewrite.xml,然后定义一些url重写规则。
然后就可以在webapp中使用url重写了。
例如:
<
rule
>
<
from
>
(.*).html
</
from
>
<
to
>
/myweb/$1.jsp
</
to
>
</
rule
>
<
rule
>
<
from
>
/login.html
</
from
>
<
to
type
="redirect"
>
http://www.myweb.com/login
</
to
>
</
rule
>
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
通过上面的配置,我们就可以通过
http://localhost:8080/myweb/abc.html访问
http://localhost:8080/myweb/abc.jsp
6.有一个特殊的url,/rewrite-status是用来显示urlrewrite的状态信息的。
UrlRewrite Filter确实简单实用且功能强大,不错。
Tomcat自带的Example里也有url重写的例子,不过功能比较弱。