1. 当前所在位置:
  2. 首页
  3. 全民捕鱼

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

2018-12-28 admin
在登陆模块的开发过程中,肯定要写过滤器这一功能,保证安全,其原理就是:当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。
--------------------- 
作者:hehuijava 
来源:CSDN 
原文:https://blog.csdn.net/hehuihh/article/details/79193825 
版权声明:本文为博主原创文章,转载请附上博文链接!
捕鱼驾到