• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

Javaweb网上商城项目实战(26)实现权限过滤器

项目实战 Geekerstar 11个月前 (05-27) 622次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

应用场景

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

解决方案

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

具体实现

在filter包下创建一个过滤器PriviledgeFilter

创建过滤器后web.xml中增加了如下代码

<filter>
  <display-name>PriviledgeFilter</display-name>
  <filter-name>PriviledgeFilter</filter-name>
  <filter-class>cn.itcast.store.web.filter.PriviledgeFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>PriviledgeFilter</filter-name>
  <url-pattern>/jsp/cart.jsp</url-pattern>
  <url-pattern>/jsp/order_info.jsp</url-pattern>
  <url-pattern>/jsp/order_list.jsp</url-pattern>
</filter-mapping>

PriviledgeFilter中编写如下代码

package com.geekerstar.store.web.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

import com.geekerstar.store.domain.User;

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(request, response);
		}

	}

	public void init(FilterConfig fConfig) throws ServletException {
	}

}

效果演示

此时我在没有登录的情况下直接访问http://localhost:8080/store_v1/jsp/order_list.jsp,会出现如下提示

点击登录之后就可以访问了。

源码下载

下载地址

导航目录

查看导航
丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:Javaweb网上商城项目实战(26)实现权限过滤器
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00