struts1和struts2的区别

现象:

在我使用strtus2进行开发时,

我用Struts2转发访问action的路径报404,我把报404的url粘贴到浏览器地址栏却可以正常访问。

 

 

原理:

request.getRequestDispatcher("xx").forward(request,response),属于服务器内部forward,不会被拦截器拦截,所以你需要为filter配置拦截forward才行。 

 

解决方法:

struts1用的是servlet,forward也会起作用。struts2里的filter的确是个大问题哟。

用filter配置拦截fowward要写成

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
   </filter-mapping>
在写过滤器的时候,注意了,我飘红的这部分一定要加上去。

你可能感兴趣的:(struts1和struts2的区别)