Java Web 网络商城案例演示十七 权限过滤器
程序员文章站
2024-01-15 22:38:34
...
Java Web 网络商城案例演示十七
权限过滤器
场景:
项目运行过程当中,希望某些资源不能被用户直接访问到,只有登录后才可以访问,列如:购物车页面,购物详情,购物列表等资源。
解决方案:
创建一个自定义过滤器,在过滤器当中为这些资源分别配置好路径,在过滤器当中判断用户是否登录,登录成功,就可以放行,没有登录,返回提示信息。
一个过滤器可以配置不同的路径
步骤实现
在Filter的文件下创建对应的过滤器,并改变和添加其要过滤的内容
1、未过滤器配置不同的路径
2、实现过滤器代码
新建过滤器分别让其过滤以下三个页面
/jsp/cart.jsp
/jsp/order_info.jsp
/jsp/order_list.jsp
/**
* Servlet Filter implementation class PriviledgeFilter
*/
public class PriviledgeFilter implements Filter {
public PriviledgeFilter() {
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest myReq = (HttpServletRequest) request;
// 判断当前的session中是否存在已经登录成功的用户
User user = (User) myReq.getSession().getAttribute("loginUser");
if(null != user) {
// 如果存在,放行
chain.doFilter(request, response);
}else {
// 如果不存在,转入到提示页面
myReq.setAttribute("msg", "请用户登录之后再去访问");
//转发到提示页面
myReq.getRequestDispatcher("/jsp/info.jsp").forward(myReq, response);
}
// chain.doFilter(request, response);
}
public void init(FilterConfig fConfig) throws ServletException {
}
}