拦截器是在面向切面编程的就是在你?/p>
service
或者一个方法,
前调用一个方法,
或者在方法后调用一个方?/p>
,比如动态代理就是拦截器的简单实现,过滤器是
?/p>
java
web
中,你传入的
request,response
提前过滤掉一些信息,或者提前设
置一些参数,然后再传?/p>
servlet
或?/p>
struts
?/p>
action
进行业务逻辑,比?/p>
过滤掉非?/p>
url
(不?/p>
login.do
的地址请求,如果用户没有登陆都过滤掉)
,
?/p>
者在传入
servlet
或?/p>
struts
?/p>
action
前统一设置字符集,或者去除掉一?/p>
非法字符?/p>
拦截器与过滤器的区别?/p>
1
、拦截器是基?/p>
java
的反射机制的,而过滤器是基于函数回?/p>
2
、过滤器依赖?/p>
servlet
容器,而拦截器不依赖与
servlet
容器
3
?/p>
拦截器只能对
action
请求起作用,
而过滤器则可以对几乎所有的请求?/p>
作用
4
、拦截器可以访问
action
上下文、值栈里的对象,而过滤器不能
5
?/p>
?/p>
action
的生命周期中?/p>
拦截器可以多次被调用?/p>
而过滤器只能在容?/p>
初始化时被调用一?/p>
过滤?/p>
也就是写一个自己的?/p>
,
让这个类实现?/p>
Filter
这个接口
,
这个接口里有?/p>
个方?/p>
?/p>
init()
?/p>
doFilter()
?/p>
destroy()
;主要是?/p>
doFilter()
进行操作
,
你可?/p>
在这个方法里写你想进行的操作
.
写完这些之后
,
就是?/p>
web.xml
里的配置?/p>
<filter>
<filter-name>myFilter</filter-name>
<filter-class>
包名
+
实现
Filter
接口的类
</filter-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
?/p>
<url-pattern>
里面设置?/p>
/*
之后
,
也就是说在进行每一个操作时都会自动?