有这么一种情况,不想让别人知道你项目访问的真实url,或者为了让url方便记忆,想用自己想用的url,该怎么办呢?
1.隐藏url的真实路径
2.url的重写
UrlRewriteFilter可以完美的解决这个问题。
使用UrlRewriteFilter的步骤:
a.下载jar包,添加jar包
jar包里封装好了路径过滤器类的实现,所以要用UrlRewriteFilter,一定要先导入。
b.在web.xml里添加过滤器
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
c.在WEB-INF下添加一个名为urlrewrite.xml配置文件用来配置显示路径与隐藏路径的对应关系。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<rule>
<note>登录重写地址,其中form为访问地址,to为实际隐藏地址</note><!--规则描述-->
<from>/zhouyajuan</from><!--显示的跳转路径(同时也是href,action里跳转的路径),相当于是显示的具体路径-->
<to>action.jsp</to><!--实际页面路径-->
</rule>
<rule>
<from>/goo</from>
<to>change.jsp</to>
</rule>
<rule>
<from>/go</from>
<to>nochange.jsp</to>
</rule>
</urlrewrite>
其实urlrewrite就相当于一个中转站,把调整路径中转一下,然后跳转到真实的页面路径。页面跳转路径的配置是from里面的路径。