zoukankan      html  css  js  c++  java
  • (二十四)权限控制(粗粒度)-通过filter

    扩展:权限控制(粗粒度)-通过filter
    过滤器编写步骤:
        1.编写一个类
            实现filter接口
            重写方法
        2.编写配置文件
            <filter>
            <filter-mapping>
            
        编写一个privilegeFilter
            判断用户是否登录(session)
            若为空 
                请求转发到msg.jsp 携带信息

    com.louis.web.filter.PrivilegeFilter

    package com.louis.web.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;
    
    import com.louis.dao.UserDao;
    import com.louis.domain.User;
    
    public class PrivilegeFilter implements Filter {
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
                throws IOException, ServletException {
            //1.强转
            HttpServletRequest request=(HttpServletRequest) req;
            HttpServletResponse response=(HttpServletResponse) resp;
            
            //2.业务逻辑
            //从session中获取user 判断user是否为空 若为空 请求转发
            User user=(User) request.getSession().getAttribute("user");
            if(user==null){
                request.setAttribute("msg", "没有权限,请先登录!");
                request.getRequestDispatcher("/jsp/msg.jsp").forward(request, response);
                return;
            }
            
            //3.放行
            chain.doFilter(request, response);
        }
    
        @Override
        public void destroy() {
            // TODO Auto-generated method stub
    
        }
    
    }

    /store/WebContent/WEB-INF/web.xml

    <filter>
          <filter-name>PrivilegeFilter</filter-name>
          <filter-class>com.itheima.web.filter.PrivilegeFilter</filter-class>
      </filter>
      <filter-mapping>
          <filter-name>PrivilegeFilter</filter-name>
          <servlet-name>OrderServlet</servlet-name>
          <url-pattern>/jsp/order_info.jsp</url-pattern>
          <url-pattern>/jsp/order_list.jsp</url-pattern>
          <!-- <url-pattern>/jsp/cart.jsp</url-pattern> -->
      </filter-mapping>
  • 相关阅读:
    (二)Spring Security 入门体验之——用户密码配置
    (一)Spring Security 入门体验
    (十二)权限之RBAC
    (十一)jwt详解
    (十)登录拦截器之前后端
    (九)优化登录页面
    (八)前后端整合之跨域问题
    SecureCRT 8.1.4 破解教程
    centOS配置网络(6.8)securCRT连接虚拟机
    二叉树的下一个节点(给定一棵二叉树的其中一个节点,请找出中序遍历序列的下一个节点)
  • 原文地址:https://www.cnblogs.com/Michael2397/p/7672408.html
Copyright © 2011-2022 走看看