在struct2里用filter实现URL重写

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值