在STRUTS2前进行处理FILTER

在STRUTS2的FILTER之前 比如StrutsPrepareAndExecuteFilter之前放一个FILTER

可以进行reponse.sendRedirect操作

或者request.getRequestDispatcher().forward操作

如果forward以后要继续经过struts2的FILTER 那么STRUTS2的FILTER要这样配置

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

这个是SERVLET2.4的新的特性 意思是让这个FILTER也可以接受经过FORWARD转发来的请求。

 

下面是这个例子

public class SwpFilter extends StrutsPrepareAndExecuteFilter {
 public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
 throws IOException, ServletException {
  HttpServletRequest request = (HttpServletRequest) req;
  HttpServletResponse reponse = (HttpServletResponse) res;
  //在这里进行URLREWRITE的操作
  if (request.getRequestURI().equals("/aa")) {
   request.getRequestDispatcher("swp/getResource?type=page&id=609&edit=true").forward(req,
   res);
   return;
  }
  if (request.getServletPath().startsWith("/fckeditor")) {
   super.doFilter(req, res, chain);
  } else if (request.getServletPath().equals("/manager/")) {
   reponse.sendRedirect(request.getRequestURI() + "manager.jsp");
  } else if (request.getServletPath().equals("/login")) {
   reponse.sendRedirect("manager/login.jsp");
  } else if (request.getServletPath().equals("/login/")) {
   reponse.sendRedirect("../manager/login.jsp");
  } else {
   super.doFilter(req, res, chain);// 调用父类的方法
  }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值