java 拦截_java之Filter用法(实现请求的拦截过滤,以及权限判断)

Filter实现登陆权限的过滤实例

Fileter简介:

Filter 主要是实现拦截客户端到达servlet到页面请求,并且能够修改请求(HttpServletRequest)的头和数据。

(实现登陆的登陆判断,以及相关权限的判断)

Filter还可以实现在HttpServletResponse到达客户端的拦截,可以检查修改(HttpServletResponse)的头和数据

1、Filter实现类

public class DoLogin implements Filter{

//获取配置参数信息

private FilterConfig config;

//初始化

public void init(FilterConfig config)

{

this.config=config;

}

//实现销毁

public void destroy()

{

this.config=null;

}

//实现doFilter方法

public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)

throws IOException,ServletException

{

//获取Filter的配置参数

String encoding=config.getInitParameter("encoding");

String loginPage=config.getInitParameter("LoginPage");

String proPage=config.getInitParameter("ProPage");

//设置编码集

request.setCharacterEncoding(encoding);

//把强求转化为HttpServletRequest

HttpServletRequest hreq=(HttpServletRequest)request;

//获取登录信息

HttpSession session=hreq.getSession(true);

//获取请求页面

String hreqPath=hreq.getServletPath();

//判断页面信息,登录user有信息,登录页面时login.jsp或者是prologin.jsp

if(session.getAttribute("user")==null

&&!hreqPath.endsWith(loginPage)

&&!hreqPath.endsWith(proPage))

{

//跳转到登录页面

request.setAttribute("tip", "你还没有登录");

request.getRequestDispatcher(loginPage).forward(request, response);

}

else

{

//放行

chain.doFilter(request, response);

}

}

}

2、配置web.xml

dologin

lee.DoLogin

encoding

GBK

LoginPage

/login.jsp

ProPage

/proLogin.jsp

dologin

/*

3、在web容器中创建3个页面login.jsp  ;prologin.jsp;other.jsp

4、最终结果展示:登陆系统以后可以任意查看其它页面,而没有登陆时,查看其它页面将会被拦截返回登陆页,并给出提示信息。

0818b9ca8b590ca3270a3433284dd417.png



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值