有时候项目中的真实链接不想让访问者直接读取到,所以这里就是用了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里面 引入:(注意位置)

 

 
  
  1. <!--UrlRewriteFilter --> 
  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> 

③定义规则如下:

需要重写的链接:

 
  
  1. http://localhost:8080/OrderSy/instrument/queryAction.action?id=82 

重写前台页面链接:
 

 
  
  1. <a href="<%=basePath%>query${OrdesInstrument.id }" > 

定义规则如下:

 
  
  1. <rule> 
  2.         <from>/query([0-9]+)</from> 
  3.         <to type="redirect">instrument/queryAction.action?id=$1  
  4.             </to> 
  5.     </rule> 
  6.     <rule> 
  7.         <from>/querywyyy([0-9]+)</from> 
  8.         <to type="redirect">instrumentReservation/findByInstrumentId0.action?instrumentId =$1  
  9.             </to> 
  10.     </rule> 
  1. <from>/query([0-9]+)</from>  对页面的链接进行重写()里面是正则表达式,
  2.         <to type="redirect">instrument/queryAction.action?id=$1 </to> $1表示上面的第1个参数,多个参数的时候,$2以此类推.

 

 
  
  1. http://localhost:8080/OrderSy/query82 

 

④定义规则之后:前台页面显示如下: