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