Urlrewrite

UrlRewrite的含义

优点

一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多

二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL

三:更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息

使用范围

地址重写一般是用于将动态地址伪静态。如果本身就是静态就没必要了。地址重写后网站制作者可以通过输入地址名直接访问。

使用方法

首页,访问其官网:我下载的是最新的目前还处于Beta版的urlrewritefilter-3.2.0,下载后将其中的urlrewrite-3.2.0.jar扔到需使用此功能项目的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>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>

其实,urlrewrite其实就是个过虑器,它将会过虑用户的所有请求,符合规则的便对其进行重定向,具体的配置参数的使用方法见官方文档:

配置好web.xml后将下载的urlrewritefilter-3.2.0中的urlrewrite.xml配置文件放在WEB-INF目录下,这样在使用urlrewritefilter时它便自动到该目录下读取相关的配置了,我配置了个简单的,代码如下:

<!-- 商城主页 -->
    <rule>
        <from>member/home.html</from>
        <to type="forward">home/homeAction!toHome.action</to>
    </rule>
    <!-- 登陆 -->
    <rule>
        <from>member/index.html</from>
        <to type="forward">member/loginAction!doNotNeedSession_login.action</to>
    </rule>
    <!-- 退出登陆 -->
    <rule>
        <from>member/out.html</from>
        <to type="forward">member/loginAction!logout.action</to>
    </rule>

rule结点中from的规则默认使用的是正则表达式来匹配的,当用户访问服务器时的URL会与该配置相比较,如果符合规则就会按照下面to结点中的配置对其进行跳转,其默认是forward跳转,具体配置可见官网文档。

在action中代码如下:

@Namespace("/home")
@Action(value = "homeAction", results = {
        @Result(name = "toHome",location = "/admin/home/home.jsp")
})
public class HomeAction extends BaseAction{
private static final long serialVersionUID = 1L;
    private static final Logger logger = Logger.getLogger(HomeAction.class);
    @Resource
    private HomeService homeService;
    @Resource
    private OrderItemsService orderItemsService;
    
    private OrderItems orderItems = new OrderItems();
    /**
     * 跳转到主页
    * @Title: toHome
    * @Description: TODO(这里用一句话描述这个方法的作用)
    * @param @return    设定文件
    * @return String    返回类型
    * @author ZhouZhangbao
     */
    public String toHome(){
    try {
        List<OrderItems> itemList =    orderItemsService.gainOrderItemAllSku(orderItems);
        request.setAttribute("itemList",itemList);
            return "toHome";
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        logger.info("异常+++++++++++++++++++++:" + e.getMessage());
        return "err";
    }
  }
}


你可能感兴趣的:(Urlrewrite)