使用过滤器对后台权限的设置

2 篇文章 0 订阅
1 篇文章 0 订阅
package org.yc.jd.util;
/**
 * @author 后飞IT
 * 关于使用过滤器对后台权限的设置
 */
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 javax.servlet.http.HttpServletResponse;

/*
 * javaee 是面向接口编程的,所有一般都是实现接口   这里的DoFilter实现了接口Filter 并实现destroy()doFilter()init()
 * 这里实现的功能是阻止没有登录的用户登录后台中的页面
 * 所以在登录的时候,但验证成功后,我们往作用域对象Session中写入这个Login,所以只要session没有失效,浏览器没有关闭,session就会有这个Attribute("Login") 
 * request.getSession().setAttribute("Login", admin);
 * 所以对任何访问有关后台的请求都要检查session中是否有这个Attribute,如果没有则定向到登陆页面,要求登陆
 * 
 * 注意:~~~
 * 这个是需要这个web project更改web.xml的
 * <filter>
 * <!--这个只是定义一下这个过滤器的名字而已,关键是下面指向的类的位置-->
 *	<filter-name>loginFilter</filter-name>
 *	<filter-class>org.yc.jd.util.DoFilter</filter-class>
 * </filter>
 * 
 * <filter-mapping>
 * 	<!--过滤器的名字是沟通class和url的-->
 *	<filter-name>loginFilter</filter-name>
 *  <!--后台的所有的页面都是在项目的这个back文件夹的,所以对所有的back的内容进行拦截,当然登陆页面就不要放进去了-->
 *	<url-pattern>/back/*</url-pattern>
 *</filter-mapping>
 * 
 * */
public class DoFilter implements Filter {
	@Override
	public void destroy() {
		// TODO Auto-generated method stub
	}
	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		//首先要对arg0 arg1类型转换
		HttpServletRequest req=(HttpServletRequest)arg0;
		HttpServletResponse res=(HttpServletResponse)arg1;
		//从session中获取有关Login的这个Attribute
		Object obj = req.getSession().getAttribute("Login");
		
		if(obj==null){
			//如果没有有关的这个Attribute中
			res.sendRedirect("/JD/login.html");
		}else{
			//可以是一个过滤器链,所以继续往下
			arg2.doFilter(req, res);
		}
	}
	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值