有时候项目中的真实链接不想让访问者直接读取到,所以这里就是用了url重写技术.urlrewritefilter4.0 是个开源的框架,其实就是把真实的链接替换掉,替换成你想显示的链接,然后web.xml里面有个过滤器,对链接进行过滤.
(A Java Web Filter with functionality like Apache's mod_rewrite)
项目地址:http://code.google.com/p/urlrewritefilter/
①解压之后就是
WEB-INF 文件夹直接复制到项目中即可,urlrewrite.xml lib\urlrewrite-4.0.0.jar
②web.xml里面 引入:(注意位置)
- <!--UrlRewriteFilter -->
- <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>
③定义规则如下:
需要重写的链接:
- http://localhost:8080/OrderSy/instrument/queryAction.action?id=82
重写前台页面链接:
- <a href="<%=basePath%>query${OrdesInstrument.id }" >
定义规则如下:
- <rule>
- <from>/query([0-9]+)</from>
- <to type="redirect">instrument/queryAction.action?id=$1
- </to>
- </rule>
- <rule>
- <from>/querywyyy([0-9]+)</from>
- <to type="redirect">instrumentReservation/findByInstrumentId0.action?instrumentId =$1
- </to>
- </rule>
- <from>/query([0-9]+)</from> 对页面的链接进行重写()里面是正则表达式,
- <to type="redirect">instrument/queryAction.action?id=$1 </to> $1表示上面的第1个参数,多个参数的时候,$2以此类推.
- http://localhost:8080/OrderSy/query82
④定义规则之后:前台页面显示如下:
附件:http://down.51cto.com/data/2359118
本文转自 w156445045 51CTO博客,原文链接:http://blog.51cto.com/enetq/695903,如需转载请自行联系原作者