haifeng_wc 2010-11-17 15:37 采纳率: 100%
浏览 348
已采纳

在filtermapping中定义dispatcher有什么作用啊


struts2Filter
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


struts2Filter
*.action
REQUEST
FORWARD

在filtermapping中,urlpattern中的意思是拦截所有以Action结尾的请求,但是在后边定义了两个dispatcher我就不是太明白了,为什么要定义这两个dispatcher啊 我知道request是一次服务器请求,forward则是服务器端的跳转,但这样定义就不明白了,难道是请求后全部在服务器端跳转吗?

  • 写回答

1条回答

  • yznkaixin 2010-11-17 20:49
    关注

    在servlet 2.4之后的规范中,加入了对 filter-mapping的dispatch的规范。

    意思就是 什么样的请求 会被过滤。

    除了通过路径之外还有另外的几种方式。


    struts2Filter
    *.action
    REQUEST
    FORWARD

    这个意思就是,以*.action结尾的请求,并且是[b]通过request dispatcher的forward方法传递过来或者直接从客户端传递过来的[/b],则必须经过这个过滤器。

    除了这个之外,

    filter

    可以作用于直接从客户端过来的request,对应dispatch为REQUEST,默认是这个

    通过forward过来的request,lz的例子就是这个意思。

    通过include过来的request,处理通过request dispatcher的include方法传递过来的请求。

    通过过来的request。

    具体LZ可以看下servlet 2.4的specification。

    一般都是不写,使用默认值,也就是request过来的请求。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?