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

过滤器Filter

时间:2019-04-23 21:24:36      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:view   为什么   attribute   on()   col   mapping   用户   代码   etc   

使用背景:

  一个项目中需要做多次需求判断时,例如商城中加入购物车需要登陆判断,我的购物车需要需求判断,我的 订单、我的收藏等等,都需要做是否登陆判断,就可以使用过滤器,把这些需求过滤下来。

使用步骤:

  1 创建一个包 com.xxx.filter
  2 在包中创建一个类 实现 Filter接口和三个实现方法
  3 在 doFilter中

 @Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain filterChain) throws IOException, ServletException {
// 设置编码方式
req.setCharacterEncoding("UTF-8");
filterChain.doFilter(req,resp);//放行
}

4 在 web.xml配置

<filter>
        <filter-name>dd</filter-name>
        <filter-class>com.guangming.filter.CharacterEncodingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>dd</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

  /* 所有请求都过滤
  /emp/* 过滤 emp下所有请求 
  *.do 过滤所有以.do结尾的请求

5.过滤器代码

@WebFilter("*.do")//拦截需要进行登陆校验的请求   加入购物车和我的购物车(addCart.do/myCart.do)
public class LoginFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
    /*判断是否登陆*/
        //为什么强转成HttpServlet: ServletRequest没有getSession().setAttribute方法
        HttpServletRequest req= (HttpServletRequest) request;
        HttpServletResponse resp= (HttpServletResponse) response;

        Object user = req.getSession().getAttribute("user");
        if (user==null){
            //session中没有获取到用户信息,证明没有登陆,则跳转到登陆界面
            resp.sendRedirect("/shop/views/login.jsp");
        }else {
            /*不加else,未放行,界面加载不出来*/
            //session中获取到了用户信息,证明已经登陆,则放行
            filterChain.doFilter(req,resp);
        }
    }

    @Override
    public void destroy() {

    }
}

 

过滤器Filter

标签:view   为什么   attribute   on()   col   mapping   用户   代码   etc   

原文地址:https://www.cnblogs.com/duguangming/p/10758700.html

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