码迷,mamicode.com
首页 > 其他好文 > 详细

使用过滤器filter进行登录验证

时间:2021-06-28 19:38:28      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:uri   tca   rgba   想去   for   attribute   let   web   conf   

简述

  在常见的网站上,我们需要登录才能访问到其他资源。一般来说我们的登录信息会用session存储,所以我们可以使用filter进行一个登录验证的过滤。

package cn.itcast.web.filter;

import com.sun.deploy.net.HttpRequest;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

@WebFilter("/*")
public class LoginFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        //0.强转或者一个http req 和 response
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        //1.判断是否是登录相关的资源
        String uri = request.getRequestURI();
        //2.判断是否包含登录相关资源路径,注意要排除css和js资源
        if(uri.contains("/login.jsp") || uri.contains("/loginServlet") || uri.contains("/css/") || uri.contains("/js/") || uri.contains("/fronts/") || uri.contains("/checkCodeServlet")){
            //包含,证明想去登录
            filterChain.doFilter(servletRequest,servletResponse);
        }else{
            //不包含,需要验证用户是否登录
            //3.从session中获取user
            Object user = request.getSession().getAttribute("user");
            if(user != null){
                //登录了,放行
                filterChain.doFilter(servletRequest,servletResponse);
            }else{
                //证明没有登录,跳转到登录页面
                request.setAttribute("login_msg","您尚未登录");
                request.getRequestDispatcher("login.jsp").forward(request,servletResponse);
            }
        }
    }
    @Override
    public void destroy() {

    }
}

 

使用过滤器filter进行登录验证

标签:uri   tca   rgba   想去   for   attribute   let   web   conf   

原文地址:https://www.cnblogs.com/qq2210446939/p/14940203.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!