在struct2里用filter实现URL重写

来源:互联网 发布:宿迁市网络问政 编辑:程序博客网 时间:2024/06/01 08:13

     由于其他系统需要实现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了。




原创粉丝点击