zoukankan      html  css  js  c++  java
  • JavaWeb过滤器——登录过滤

    一般来说简单且常用的过滤器使用方法,我觉得除了配置字符编码的过滤之外就是登录器的过滤了

    登录过滤器的主要过程可以 一句话来概括:首先在登录的时候把指定好的标志放在session中,操作过滤的时候根据session中的标志判断是否需要过滤。(好像是废话……)

    过滤器代码:

    package com.ahoo.filter;
    
    
    import javax.servlet.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    
    /**
     * @author xueyuan
     * @dater 2017/2/20.
     */
    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 {
    
            HttpServletRequest req = (HttpServletRequest) request;
            HttpServletResponse resp = (HttpServletResponse) response;
            HttpSession session = req.getSession();
            //获取请求路径
            String path = req.getRequestURI();
            //获取session中作为判断的字段
            String pwd = (String) session.getAttribute("passwd");
            //判断请求的 路径中是否包含了 登录页面的请求
            //如果包含了,那么不过滤 继续执行操作
            if (path.indexOf("/back/login.do") > -1) {
                filterChain.doFilter(req, resp);
            } else {
                //如不包含,那么就要判断 session中否有标志,如果没有标志,那么不让他看,让他去登录,反之执行操作!
                if (pwd == null || "".equals(pwd)) {
                    resp.sendRedirect("/back/login.do");
                } else {
                    filterChain.doFilter(req, resp);
                }
            }
        }
    
        @Override
        public void destroy() {
    
        }
    }

    web.xml中配置过滤器

     <filter>
            <filter-name>login</filter-name>
            <filter-class>com.ahoo.filter.LoginFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>login</filter-name>
            <!-- 过滤某个文件夹下面的 我这里是back目录下的操作-->
            <url-pattern>/back/*</url-pattern>
        </filter-mapping>

    参考:http://www.cnblogs.com/haojieli/p/5559854.html  感谢园友的无私奉献!

  • 相关阅读:
    js常用设计模式实现(一)单例模式
    js深入(四)万脸懵圈的this指向
    js深入(三)作用域链与闭包
    js深入(二)函数的执行与上下文
    js深入(一)从原型理解原型链
    初识markdown
    git stash 用法
    见的如T、E、K、V等形式的参数常用于表示泛型形参
    SystemBarTint是两年以前的一个开源库,现在我们依然可以用它很方便的给应用加上。
    android:supportsRtl="true" 属性
  • 原文地址:https://www.cnblogs.com/eoooxy/p/6419839.html
Copyright © 2011-2022 走看看