地址映射,用urlrewrite啊

      地址映射,我说的是想baidu博客一样的那个功能,就是创建一个账户之后可以通过http://hi.baidu.com/xxx来访问这个页面,我们 当然不可能每创建一个用户就在本地生成一个页面,那样的方法太鹾了,数据冗余也很大。
    我最初的想法是这样的:设计一个页面,当出现404错误的时候就由这个页面来处理进行页面的跳转。觉得这个还是可行的,不过需要对于访问的地址进行解析, 确实麻烦了一点。于是放弃。
    在Google上搜到过一个设置struts的方法,觉得还是很麻烦,需要配置一大堆东西,还是放弃。
   
    事实上,已经有一个现成的东西了,有人已经写好这样一个Filter来处理地址映射了,叫UrlWriteFilter
我们要做的只是把这个jar的包放在WEB.INF文件夹中,在web.xml中注册这个filter,写入
 
       <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>
        
</filter-mapping>


   然后配置那个urlwrite就可以了,在urlwrite.xml已经有很多例子了,比如

     <rule>
            
<from>/products/([0-9]+)</from>
            
<to>/products/index.jsp?product_id=$1</to>
        
</rule>


    
在这里如果你访问的是/products/1234,事实上访问的是/products/index.jsp?product_id=1234
其他的只要使用正则表达式即可。

另外需要注意的是,用了这个东西貌似显示CSS会有问题,只要在调用CSS文件的时候使用绝对路径就好了,一些超链接也最好使用绝对路径。

posted on 2010-02-05 02:03  vivy  阅读(247)  评论(0编辑  收藏  举报