最新公告
  • 新注册用户请前往个人中心绑定邮箱以便接收相关凭证邮件!!!点击前往个人中心
  • Javaweb网上商城项目实战(26)实现权限过滤器

    应用场景

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

    解决方案

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

    具体实现

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

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

    
      PriviledgeFilter
      PriviledgeFilter
      cn.itcast.store.web.filter.PriviledgeFilter
    
    
      PriviledgeFilter
      /jsp/cart.jsp
      /jsp/order_info.jsp
      /jsp/order_list.jsp
    
    

    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,会出现如下提示

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

    源码下载

    [dm href=’https://www.geekerstar.com/product/1700.html’]下载地址[/dm]

    导航目录

    [dm href=’https://www.geekerstar.com/project/2786.html’]查看导航[/dm]

    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » Javaweb网上商城项目实战(26)实现权限过滤器

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    参与讨论

    • 211会员总数(位)
    • 3737资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 919稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级