案例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里面的地址不能是相对地址,要写成绝对地址:

原文地址:https://www.cnblogs.com/jepson6669/p/8449230.html