欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java Web 网络商城案例演示十七 权限过滤器

程序员文章站 2024-01-15 22:38:34
...

Java Web 网络商城案例演示十七

权限过滤器

场景:

项目运行过程当中,希望某些资源不能被用户直接访问到,只有登录后才可以访问,列如:购物车页面,购物详情,购物列表等资源。

解决方案:

创建一个自定义过滤器,在过滤器当中为这些资源分别配置好路径,在过滤器当中判断用户是否登录,登录成功,就可以放行,没有登录,返回提示信息。
一个过滤器可以配置不同的路径

步骤实现

在Filter的文件下创建对应的过滤器,并改变和添加其要过滤的内容
1、未过滤器配置不同的路径
2、实现过滤器代码
Java Web 网络商城案例演示十七 权限过滤器
新建过滤器分别让其过滤以下三个页面
/jsp/cart.jsp
/jsp/order_info.jsp
/jsp/order_list.jsp
Java Web 网络商城案例演示十七 权限过滤器
Java Web 网络商城案例演示十七 权限过滤器

/**
 * 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 {
	}
}
相关标签: 项目