在struct2里用filter实现URL重写

xiaoxiao2021-02-28  78

     由于其他系统需要实现URL重写技术,但是其他三方的重写技术,功能复杂,而我们系统只需要简单的url重写,就是转发到,struct2里面的,action,就可以了,所以,自己准备写个简单的filter,过滤到比如 /xx/* ,转发到固定的action,用服务器内部forward,转发,

在filter里面,实现 request.getRequestDispatcher("xx.action?id=$filename").forward(request,response),就可以但是,因为 struct2 默认主过滤器org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,默认dispatcherTypes 类型为DispatcherType.REQUEST,不过滤 DispatcherType.FORWARD,所以,需要在web.xml里面添加:

<filter-mapping>     <filter-name>struts2</filter-name>     <url-pattern>/*</url-pattern>       <dispatcher>REQUEST</dispatcher>     <dispatcher>FORWARD</dispatcher>   </filter-mapping>

这样就可以实现在filter 转发到action了。

转载请注明原文地址: https://www.6miu.com/read-58010.html

最新回复(0)