java filter 登陆访问_javaweb过滤器filter-判断用户是否登录

1.首先在web.xml文件添加filterwxloginfiltercom.src.mian.filter.WXLoginFiltertrueencodingUTF-8wxloginfilter/*

2.添加class类继承Filter

public class WXLoginFilter implements Filter {

//标示符:表示当前用户未登录

String NO_LOGIN_NO = "NO_LOGIN_NO";

//排除url

//String[]此处的url路径需要登录后,才有权访问

String[] excludeUrls = new String[]{"gift/getgift","gift/userGiftList","gift/giftInfo","game/addComment"};//

public WXLoginFilter() {

// TODO Auto-generated constructor stub

}

/**

* @see Filter#destroy()*/public voiddestroy() {//TODO Auto-generated method stub

}/**过滤器

* 判断url数组String[] excludeUrls中的url访问时是否已登录

* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)*/public voiddoFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

HttpServletRequest request=(HttpServletRequest) servletRequest;

HttpServletResponse response=(HttpServletResponse) servletResponse;

HttpSession session=request.getSession();

String uri=request.getRequestURI();//System.out.println("filter url:"+uri);//System.out.println("sessionid:"+session.getId());

boolean pass = false;if(excludeUrls != null){for(String url : excludeUrls){if (uri.indexOf(url)>-1){

pass= true;break;

}

}

}if (!pass) {

filterChain.doFilter(servletRequest, servletResponse);

}else{if(session.getAttribute("userKey_session") != null){//System.out.println("userKey_session:"+session.getAttribute("userKey_session"));

filterChain.doFilter(request, response);

}else{

String requestType= request.getHeader("X-Requested-With");//判断是否是ajax请求

if(requestType!=null && "XMLHttpRequest".equals(requestType)){

response.getWriter().write(this.NO_LOGIN_NO);

}else{

response.sendRedirect(request.getContextPath()+"/user/login");

}return;

}

}

}/**初始化

* @see Filter#init(FilterConfig)*/public voidinit(FilterConfig fConfig) throws ServletException {//TODO Auto-generated method stub

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值