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


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


struts2Filter
*.action
REQUEST
FORWARD

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

在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过来的请求。