javaweb登陆过滤器实现

javaweb登陆过滤器实现

在web.xml中配置登陆过滤器:

<!-- 配置登陆过滤器 -->
    <filter>
        <filter-name>loginFilter</filter-name>
        <filter-class>weijiabin.BBS.Utils.LoginFilter</filter-class>
        <init-param>
            <param-name>passUrl</param-name>
            <param-value>index;login;FunctionServlet</param-value>
           </init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>loginFilter</filter-name>
           <url-pattern>/*</url-pattern>
    </filter-mapping>
上边代码中的param-value用来设置不进行拦截的地址关键字(以;作为分隔符),在下边过滤器代码中用passUrl表示

然后写过滤器代码:
public class LoginFilter implements Filter {

	@Override
	public void destroy() {
		// TODO Auto-generated method stub

	}
	String passUrl = "";
	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
		 HttpServletRequest httpRequest=(HttpServletRequest)arg0;
	        HttpServletResponse httpResponse=(HttpServletResponse)arg1;
	        HttpSession session=httpRequest.getSession();
	        String[] strArray = passUrl.split(";");
          //下边循环作用是依次检查访问的url中是否包含passurl中的关键字,如果包含则不进行拦截 for (String str : strArray) { if (str.equals(""))//如果在上边配置中设置的url为空,则说明都需要进行拦截,跳过此循环 continue; if (httpRequest.getRequestURL().indexOf(str) >= 0) { arg2.doFilter(httpRequest, httpResponse); return; } } if(session.getAttribute("sessionUser")!=null){ arg2.doFilter(httpRequest, httpResponse); } else{ httpResponse.sendRedirect(httpRequest.getContextPath()+"/login.jsp"); } } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub passUrl = arg0.getInitParameter("passUrl"); } }

  

posted @ 2018-09-14 17:37 Jarbein 阅读( ...) 评论( ...) 编辑 收藏
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jarbein

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值