看视频学习有一个疑惑,请各位大哥解答一下
在Struts2的默认配置里是这样的
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
视频里的老师说,Struts2默认拦截所有直接请求,转发是不拦的
但是今天学习dispatcher,redirect,chain的时候dispatcher通过转发的形式跳转到一个资源,chain是将请求转发到一个action,这两个不需要修改web.xml里的设置直接就能用,但是接下来老师又说dispatcher也可以转发到一个action但是需要修改web.xml里的配置。如下:
<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> <dispatcher>FORWARD</dispatcher> <dispatcher>REQUEST</dispatcher> </filter-mapping>
我想问的是dispatcher和chain都是转发,他们为什么可以直接使用,当用dispatcher转发到一个action时,为什么需要修改配置,他们之间的转发有什么不同?