package com.ycsoft.commons.action;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
/**
* @author liujiaqi
* 增加过滤的url功能,数据在web.xml中配置,路径用’,’分割
* 增加如下代码
* <init-param>
<param-name>excludeUri</param-name>
<param-value>/urla/,/urlb/</param-value>
</init-param>
*
*/
public class BossStrutsPrepareAndExecuteFilter extends
StrutsPrepareAndExecuteFilter {
private String[] excludeUri;
public void init(FilterConfig filterConfig) throws ServletException {
excludeUri = filterConfig.getInitParameter("excludeUri").split(",");
super.init(filterConfig);
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
final String uri = request.getRequestURI();
final String contextPath = request.getContextPath();
for (int i = 0; i < excludeUri.length; i++) {
if (uri.indexOf(excludeUri[i], contextPath.length()) > -1) {
chain.doFilter(req, res);
return;
}
}
super.doFilter(req, res, chain);
}
}