第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > jsp用户登录验证_Java之使用过滤器进行登录验证

jsp用户登录验证_Java之使用过滤器进行登录验证

时间:2019-03-14 12:28:02

相关推荐

jsp用户登录验证_Java之使用过滤器进行登录验证

前言

过滤器是一种 Java 组件,这一点与 Servlet 类似,用于在请求发到 Servlet 之前进行拦截并处理,或者在 Servlet 执行完毕之后,在发送回客户端之前对响应进行拦截并处理。

一:实现思路

(1)将request强转成HttpServletRequest,这样才有getRequestURI()方法

(2)获取资源访问路径

(3)判断uri中是否有登录选项,要注意排除掉css/js/图片/验证码等资源

(4)如果包含登录选项,直接放行,如果不包含,则需要验证用户是否登录

(5)从session中获取user,登录了就放行,没有登录就转发到登录页面

二:代码实现

@WebFilter("/*"public class LoginFilter implements Filter {public void destroy() {}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {//先强转成HttpServletRequest,这样才有getRequestURI()方法HttpServletRequest request = (HttpServletRequest) req;//获取资源访问路径String uri = request.getRequestURI();System.out.println(uri);//判断uri中是否有登录选项if(uri.contains("login_v2.jsp")||uri.contains("/login")||uri.contains("/css/")|| uri.contains("/js/")|| uri.contains("/fonts/")||uri.contains("/code")){//直接放行chain.doFilter(req, resp);}else {//判断session中是否有user//有,直接放行Object user = request.getSession().getAttribute("user");if(user!=null){chain.doFilter(req, resp);}else {//没有,提醒去登录,并请求转发到登录页面request.setAttribute("login-msg","您尚未登录,请登录");request.getRequestDispatcher("/login_v2.jsp").forward(request,resp);}}}public void init(FilterConfig config) throws ServletException {}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。