• 过滤器只允许有权限用户访问jsp


    1、过滤器

    package com.life.struts.filter;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class SellerLoginFilter implements Filter {
    
        @Override
        public void doFilter(ServletRequest servletRequest,
                ServletResponse servletResponse, FilterChain filterChain)
                throws IOException, ServletException {
            // TODO Auto-generated method stub
            //取session
            HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
            HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
            System.out.println("seller过滤器"+httpServletRequest.getRequestURI());
    
            String seller = (String) httpServletRequest.getSession(true)
                    .getAttribute("seller");
    
            if (!isSellerExcludePages(httpServletRequest.getRequestURI())) {
                System.out.println("哈哈");
                if (seller == null) {
                    System.out.println("呵呵");
                    httpServletResponse.sendRedirect(httpServletRequest
                            .getContextPath() + "/seller/login.jsp");
                    return;
                }
            }
            filterChain.doFilter(servletRequest, servletResponse);
        }
    
        private boolean isSellerExcludePages(String requestURI) {
            // TODO Auto-generated method stub
            return requestURI.indexOf("logout.") != -1
                    || requestURI.indexOf("login.") != -1
                    || requestURI.indexOf("action.") != -1
                    || requestURI.endsWith(".css") || requestURI.endsWith(".js")
                    || requestURI.endsWith(".gif") || requestURI.endsWith(".jpg")
                    || requestURI.endsWith(".png");
        }
    
        @Override
        public void init(FilterConfig arg0) throws ServletException {
            // TODO Auto-generated method stub
    
        }
    
        @Override
        public void destroy() {
            // TODO Auto-generated method stub
            
        }
    
    }

    注意:httpServletRequest.getRequestURI() 是 httpServletRequest.getRequestURI()。

    不要在isSellerExcludePages加上|| !requestURI.contains("seller.jsp"),看上去是对包含seller.jsp进行拦截,但是如果不包含它的则都会通过了

    web.xml配置

    (1) 扩展匹配

        <filter>
            <filter-name>LoginFilter</filter-name>
            <filter-class>com.life.struts.filter.LoginFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>LoginFilter</filter-name>
            <url-pattern>*.jsp</url-pattern>
        </filter-mapping>

     (2)路径匹配:/seller/*,但是不要混搭/*.jsp

    Done!

  • 相关阅读:
    数据库连接
    TUniConnection连接
    在Bootstrap中得模态框(modal)中下拉不能显示得问题
    git ---匿名分支和checkout命令
    git ---合并和删除分支
    Git ---创建和切换分支
    git --删除文件、重命名
    git --版本对比
    git ---回到过去
    git ---查看工作状态和历史提交
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3896850.html
Copyright © 2020-2023  润新知