day50

web

过滤器

  • 获取到session对象

      HttpServletRequest request=(HttpServletRequest)arg0;
      HttpServletResponse response=(HttpServletResponse)arg1;
      HttpSession session=request.getSession();
    
  • 过滤器的使用:

    1. 使用过滤器检测用户是否登录
    2. 针对所有post请求,统一解决乱码问题
  • 步骤:

    1. 在web.xml中设置相关的配置(类似与servlet的设置)
      image

    2. 创建相关的过滤器类

    3. 实现过滤器接口(Filter)

    4. 重写相关方法()

       public class LoginFilter implements Filter {
      
       @Override
       public void destroy() {
      
       }
       /**
        * 核心过滤的方法
        */
       @Override
       public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)throws IOException, ServletException {
       	System.out.println("开始过滤");
       	//检测用户是否登录过(验证session)
       	HttpServletRequest request=(HttpServletRequest)arg0;
       	HttpServletResponse response=(HttpServletResponse)arg1;
       	HttpSession session=request.getSession();
       	//从session中获取用户信息
       	User user=(User)session.getAttribute("user");
       	if(user!=null && user.getName()!=null) {
       		System.out.println("开始放行");
       		//放行
       		arg2.doFilter(request, response);
       	}else {
       		System.out.println("拦截");
       		response.sendRedirect("/web10/login.jsp");
       	}
      
       }
      
       @Override
       public void init(FilterConfig arg0) throws ServletException {
      

    }

}

posted @ 2022-11-17 21:34  Ayiuuuuu  阅读(30)  评论(0)    收藏  举报