• 案例32-权限控制


    1 案例分析

    1用户是否登录过滤分析

    2 代码实现

    1 UserLoginPrivilegeFilter 代码

    去掉提交订单和我的订单里面的用户是否登录的校验。

    public class UserLoginPrivilegeFilter implements Filter{
        
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            
            HttpServletRequest req = (HttpServletRequest) request;
            HttpServletResponse resp = (HttpServletResponse) response;
            
            //校验用户是否登录----校验session是否存在user对象
            HttpSession session = req.getSession();
    
            //判断用户是否已经登录 未登录下面代码不执行
            User user = (User) session.getAttribute("user");
            if(user==null){
                //没有登录
                resp.sendRedirect(req.getContextPath()+"/login.jsp");
                return;
            }
            
            chain.doFilter(req, resp);
        }
        
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            // TODO Auto-generated method stub
            
        }
    
        @Override
        public void destroy() {
            // TODO Auto-generated method stub
            
        }
    
    }

    2 配置问题

    <!-- 用户登录权限配置在自动登录的后面 -->
    <filter>
        <filter-name>UserLoginPrivilegeFilter</filter-name>
        <filter-class>com.itheima.web.filter.UserLoginPrivilegeFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>UserLoginPrivilegeFilter</filter-name>
        <url-pattern>/privilege/*</url-pattern>
    </filter-mapping>

    3 其他问题

    在webcontent下面新建一个privilege文件夹,将需要登录登录才能访问的的jsp文件移动到其中。

    注意这个时候order_list.jsp和order_info.jsp里面的地址不能是相对地址,要写成绝对地址:

  • 相关阅读:
    进程调度算法
    操作系统文件管理
    25 个精美的手机网站模板
    WEB和APP谁是互联网未来
    网站设计趋势
    百度搜索引擎中的快照及快照更新机制
    JS实现信息的显示和隐藏
    虚拟主机单线、双线、多线的区别
    Types of Entity in Entity Framework:
    DBContext
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8449230.html
Copyright © 2020-2023  润新知