filter:登陆验证和权限验证

一、在MyEclipse中定义filter

  只要在新建普通类时让它实现Filter接口就可以了。然后IDE会自动导入相关必须的类(还挺多的),而且一般会生成3个方法:

 

  一般只需要在doFilter方法体内编写相关代码就行。

 

二、已登陆验证

  除了首页外,只有用户成功登陆后才能进入其他页面。为了防止用户通过在浏览器地址栏输入地址非法进入这些页面,可以定义一个filter,当进入这些页面时,检查session的相关属性是否存在。只要客户浏览器没有关闭,session对象会一直保持,只要其中的属性没有被更改,将会一直保持。

  在LoginFilter的doFilter方法体内编写如下代码:

 

26、27行将请求与响应对象强制转换为Http...类型。

29行获取网址中最后一个"/"之后的内容,也就是实际进入的页面文件名。

32行出现的LoginServlet是用来验证登陆、注销以及密码修改这三个操作的。要执行哪一个操作可以使用request的action属性来判断。因此,只要都不是这些操作,就可以确认是非法进入,强制跳转到首页中——有漏洞,应该还要判定该用户是否已经成功登陆。

 

43行的分支是对其他页面的验证,这些页面是只有登陆成功的用户才能进入的。

 

三、在web.xml中配置

  因为进行身份验证的Filter的实现逻辑类似,故不再阐述。

配置格式如下:
 

这里定义了两个Filter,定义顺序应该决定执行顺序吧。

 

然后还要配置该Filter对哪些页面起作用

 

这三个filter-mapping的不同之处仅在于url-pattern这里,貌似没有方法一次过写上三个路径,所以这里只要分三个来写了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值