过滤器Filter的写法及注意事项

在登陆模块的开发过程中,肯定要写过滤器这一功能,保证安全,其原理就是:当session中的用户丢失了就拦截相关操作,只有当session中的用户存在的时候,才可以顺利请求服务器进行相关操作。

过滤器的写法分为两步:

第一步:创建过滤器这个类,声明过滤条件,该类必须实现Filter,implement Filter(导包的时候不要导错了,是servlet中的),代码写法如下:

第二步:在web.xml中配置过滤器,统一写法

<filter>

<display-name>LoginFilter</display-name>

<filter-name>LoginFilter<filter-name>

<filter-class>com.baidu.goods.user.web.filter.LoginFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>LoginFilter</filter-name>

<url-pattern>/jsps/*</url-pattern>

</filter-mapping>

实例如下:


这样,当session中的用户丢失的时候就会过滤掉url-pattern中的所有请求,要求用户必须登录。


除了在web.xml中配置过滤器,还可以用注解的方式,如下图:

urlPatterns中填写需要过滤的路径,servletNames中填写需要过滤的servlet,过滤的路径中可以不填写servlet的路径,在servletNames中填写servlet就可以了,但是,这里隐含着一个很大的问题,servletNames中声明过滤的servlet必须在web.xml中配置过,否则无效,也就是servletNames中的servlet对注解方式的servlet无效。所以综上所述:为保证安全,当开发人员使用注解的方式配置过滤器时,urlPatterns中最好是写完整所有要过滤的路径,包含jsp页面,servlet控制层,而所有的servlet都应该优先采用配置web.xml的方式,而不是注解的方式,注解只对运行时的请求有效,filter会优先寻找web.xml中的servlet。


  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值