一个简单的过滤器(filter)

有关于自己目前的对于filter的用法吧

 

备注,之下所写代码,不是测试代码,是直接把之前代码copy下来的,并不能直接运行,只是拿来当个借鉴

 

首先,是有关filter在web.xml配置文件中的配置

<filter>
		<filter-name>loginFilter</filter-name>
		<filter-class>filter.loginFilter</filter-class>
		<init-param>
			<param-name>ex</param-name>
			<param-value>login.jsp,.css,.eot,.woff,.ttf,.png,.jpg,Activity_User/login,Activity_Operator/login,.js,img</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>loginFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

接下来

public class loginFilter implements Filter{
	private Set<String> prefixIignores = new HashSet<String>();
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	public void doFilter(ServletRequest req1, ServletResponse resp1, FilterChain fc)
			throws IOException, ServletException {
		// TODO Auto-generated method stub
		HttpServletRequest req=(HttpServletRequest) req1;
		HttpServletResponse resp=(HttpServletResponse) resp1;
		if (canIgnore(req)) {
			fc.doFilter(req, resp);
			return;
		}
		if(req.getSession().getAttribute("operator")!=null||req.getSession().getAttribute("user")!=null) {
			fc.doFilter(req, resp);
		}
		else {
			resp.sendRedirect("http://localhost:8080/activity/login.jsp");
		}
	}

	public void init(FilterConfig c) throws ServletException {
		
		String ex = c.getInitParameter("ex");
		String[] ignoreArray = ex.split(",");
		for (String s : ignoreArray) {
			prefixIignores.add(s);
		}
	}
	private boolean canIgnore(HttpServletRequest request) {
		String url = request.getRequestURI();
		for (String ignore : prefixIignores) {
			if (url.endsWith(ignore)) {
				return true;
			}
		}
		return false;
	}


}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值