Filter可以解决的问题实例:
1:登录网站后下次访问网站的任何资源都认为已经登录了
设置权限问题,一部分人可以访问资源,一部分人不可以
2:解决全局编码
在filter的request中编写编码request.setCharacterEncoding( UTF-8 ),则后面的所有资源均可访问filter
filter可能有对个,filter不一定要对所有的资源进行过滤,chain.dofilter(request,response) 对资源放行,
服务器启启动创建filter对象,随之执行init()创建方法,服务器关闭时执行destory()方法,实现销毁
每次配置的目标资源经过filter进行过滤,doFilter方法就执行一次
struts2中使用到了filter:
下面代表访问任何资源都找structsPrepareAndExecuteFilter
下面代表访问资源时,只要资源的扩展名是.action就找structsPrepareAndExecuteFilter
FilterCain中根据web.xml文件中filter-mapping的放在顺序来确定filter的执行顺序
3种匹配方式:
1:完全匹配
2:目录匹配
3:扩展名(后缀名)匹配
/* :表示对所有资源进行过滤匹配
注意:重定向是直接访问,客户端再次访问服务器一次的过程,只不过是不是我手动输入地址进行访问而是客户端自动进行的直接访问
方法增强的三种方法:1 继承 2:装饰者模式 3:动态代理
案例1:使用装饰者模式设置全局编码
filter文件:
servlet文件:
jsp文件:
配置web.xml文件
案例2:自动登录
servlet文件:
srevice文件:
dao文件:
filter文件: