首页 > 其他 > 详细

servlet: 过滤器 filter

时间:2019-05-25 15:22:42      阅读:91      评论:0      收藏:0      [点我收藏+]

servlet的三大组件
servlet

  • filter 过滤器
  • Listener 监听器

过滤器是用来过滤http请求的


//继承于filter(javax.servlet)
public class LoginFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // 初始化, 当前的过滤器对象创建出来的时候, 该方法会执行
        // 一般在该方法中读取web.xml中的参数
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        //强转成HttpServletRequest
        HttpServletRequest req = (HttpServletRequest) request;
        //取出session
        HttpSession session = req.getSession();
        // 从session中取出登录的用户信息
        Object user = session.getAttribute("user");
        // 如果可以取出用户
        if (user != null) {
            // 对该请求进行放行
            chain.doFilter(request, response);
        } else {
            // 用户没登录
            HttpServletResponse resp = (HttpServletResponse) response;
            // 重定向回登录页面
            resp.sendRedirect("/login");
        }
    }

    @Override
    public void destroy() {
        // 当前过滤器被销毁的时候会执行
        // 一般用于释放资源
    }

    // 在Filter的接口中 init和destroy 方法default被标记所以使用时可以不重写
}

在 wed.xml中进行配置

    <!--配置过滤器-->
    <filter>
        <filter-name>LoginFilter</filter-name>
        <filter-class>com.lanou.demo.filter.LoginFilter</filter-class>
    </filter>

    <!--配置过滤器映射-->
    <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <url-pattern>/user</url-pattern>
    </filter-mapping>
    <!--如要配置多个就多些几个映射-->
    <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <url-pattern>/book</url-pattern>
    </filter-mapping>

servlet: 过滤器 filter

原文:https://www.cnblogs.com/lxx-1843693653/p/10922431.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!