导航:首页 > 净水问答 > 过滤器和监听器常用吗

过滤器和监听器常用吗

发布时间:2020-12-15 02:35:55

1. java中拦截器 过滤器 监听器都有什么区别尤其是拦截器和过滤器

过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts2的
action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者
struts2的action前统一设置字符集,或者去除掉一些非法字符
拦截器,是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。

拦截器与过滤器的区别 :
拦截器是基于java的反射机制的,而过滤器是基于函数回调。
拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次
执行顺序 :过滤前 - 拦截前 - Action处理 - 拦截后 -
过滤后。个人认为过滤是一个横向的过程,首先把客户端提交的内容进行过滤(例如未登录用户不能访问内部页面的处理);过滤通过后,拦截器将检查用户提交数
据的验证,做一些前期的数据处理,接着把处理后的数据发给对应的Action;Action处理完成返回后,拦截器还可以做其他过程,再向上返回到过滤器的后续操作。

监听器:这个东西在c/s模式里面经常用到,他会对特定的事件产生产生一个处理。监听在很多模式下用到。比如说观察者模式,就是一个监听来的。又比如struts2可以用监听来启动。Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。
好比如果说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener
接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。主要作用是:
做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等。

2. Servlet、过滤器、监听器实例化对象的优先级和销毁的优先级

创建: 监听器-->过滤器-->Servlet.
项目启动后,容器会首先创建声明的各种监听器,为后继的各个事件监听做准备,然后创建过滤器,最后是Servlet.

销毁的时候是反序进行的....

3. 编写servle过滤器时,下面哪个接口用于调用过滤器链中的下一个过滤器

监听器复接口ServletAPI中定义了制8个监听器,根据监听对象的类型和范围可以分为3类:ServletContext事件监听器、HTTPSession事件监听器和ServletRequest事件监听器。8个监听器接口如表13-2所示。13.2.2ServletContextListener接口在Web应用程

4. Struts2中过滤器,拦截器,监听器他们之间有什么区别

1、拦截器是基于抄java反射机制的,而过滤器是基于函数回调的。
2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器。
3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。

5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。

5. Java中的过滤器、拦截器、监听器分别是什么意思

王朝*说的很全面了,翻阅了几本资料后,从J2EE的角度略作补充吧。
1)首先是拦截器,拦截器是一种面向方面/切面编程(AOP Aspect-Oriented Programming),而面向切面就是将多个模块的的通用服务进行分离,如权限管理、日志服务,他们在多个模块中都会用到,就可以将其各自封装为一个可重用模块。而这些通用服务的具体实现是通过拦截器来完成,比如用户客户端访问一些保密模块都应先通过权限审查的拦截器来进行权限审查,确定用户是否具有该项操作的权限后方能向下执行。
2)过滤器,过滤器处于客户端与Web资源(Servlet、JSP、HTML)之间,客户端与Web资源之间的请求和响应都要通过过滤器进行过滤。举例:在过滤器中定义了禁止访问192.10.10.1这个地址,那么当客户端发出访问192.10.10.1的请求时,经过过滤器后,客户端得到的响应是出现该IP禁止访问的提示。再举个例子,我们J2EE项目中的权限管理就是通过过滤器实现的,网站有不用身份的用户(系统管理员、会员级用户、浏览者临时用户),不用身份对系统的功能模块具有不同的访问权限,可以将各功能模块以*.do命名,然后在过滤器中配置过滤*.do,就可以控制不同级别用户的访问权限了
3)监听器,是针对事件而说的,可以说是事件监听器,J2EE中事件主要有三类:ServletContext事件、会话事件和请求事件。以ServletContext对象的创建事件为例,利用针对ServletContext对象创建事件的监听器来监听,一旦监听到有ServletContext对象的创建事件(比如项目启动时的初化),就读取相应的数据库连接操作来保存供调用。简单来说监听器就是监听一些对象和属性等的增加、修改和删除,一旦监听到相应事件就会触发某种活动,做出相应处理。
答案均系在图书馆查阅资料后手敲,不知满意否,呵呵。

6. Java拦截器 过滤器 监听器有何区别 都是什么

晕~不是一回事啊~应用的地方不同~拦截器是在strusts2框架里面会使用到~拦截请求用的~监听器大多用于监听人机交互控件

7. 请分别描述Servlet中监听器和过滤器的含义,并指出二者之间的区别与联系。

web开发中会用到,在web.xml中配置监听和过滤器。在java代码中实现。
监听是把满足监听条版件的jsp之类的请权求送到监听服务中去执行,即交给别的代码托管。可以任意配置*.do,*.jsp。过滤器是排除某些资源的

8. spring中怎么实现过滤器和监听器

1、延迟加载过滤器

Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关闭,这些导致延迟加载数据的访问异常。

Spring 为此专门提供了一个 OpenSessionInViewFilter 过滤器,它的主要功能是使每个请求过程绑定一个 Hibernate Session,即使最初的事务已经完成了,也可以在 Web 层进行延迟加载的操作。

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>

2、乱码过滤器

对post乱码的处理,如下

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter①Spring编辑过滤器
</filter-class>
<init-param>②编码方式
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>③强制进行编码转换
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>②过滤器的匹配URL
<filter-name>encodingFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>

3、请求跟踪日志过滤器

程度调试者可以详细地查看到有哪些请求被调用,请求的参数是什么,请求是否正确返回等信息,需要将log4j设为debug

org.springframework.web.filter.: 该过滤器将请求的 URI 记录到 Common 日志中


4、WebAppRootListener

可以将 Web 应用根目录添加到系统参数中,对应的属性名可以通过名为“webAppRootKey”的 Servlet 上下文参数指定,默认为“webapp.root”,配置如下

<context-param>
<param-name>webAppRootKey</param-name>
<param-value>baobaotao.root</param-value>①Web应用根目录以该属性名添加到系统参数中
</context-param>

②负责将Web应用根目录以webAppRootKey上下文参数指定的属性名添加到系统参数中
<listener>
<listener-class>
org.springframework.web.util.WebAppRootListener
</listener-class>
</listener>

5、Log4jConfigListener监听器

包括了 WebAppRootListener 的功能,也就是说,Log4jConfigListener 会自动完成将 Web 应用根目录以 webAppRootKey 上下文参数指定的属性名添加到系统参数中,在log4j.xml可以直接使用


6、Introspector 缓存清除监听器

负责处理由 JavaBean Introspector 功能而引起的缓存泄露。IntrospectorCleanupListener 监听器在 Web 应用关闭的时会负责清除 JavaBean Introspector 的缓存,在 web.xml 中注册这个监听器可以保证在 Web 应用关闭的时候释放与其相关的 ClassLoader 的缓存和类引用。

9. java中拦截器、过滤器、监听器都有什么区别

1、过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然回后再传入servlet或者struts2的。

2、action进行业务逻辑答,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者struts2的action前统一设置字符集,或者去除掉一些非法字符。

3、拦截器,是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。

阅读全文

与过滤器和监听器常用吗相关的资料

热点内容
污水提升泵持续工作时间 浏览:581
超滤膜进水口 浏览:755
小米3净化器滤芯剩多少怎么看 浏览:754
土壤的离子交换量 浏览:503
长安农村污水处理哪里有做 浏览:387
污水处理菌怎么使用 浏览:351
热水器免拆除垢剂 浏览:871
室外油烟净化器怎么安装 浏览:92
排污水在哪里 浏览:320
树脂和大分子筛的区别 浏览:805
离子交换膜的膜现象理论 浏览:896
洗脸池陶瓷的和树脂的哪个好 浏览:471
海尔净水机ro膜如何更换 浏览:373
水分子通过的半透膜 浏览:948
四万吨污水处理厂占地面积多少 浏览:309
cs75滤芯什么时候换 浏览:686
白醋去水垢味太大 浏览:384
无烟管道内循环油烟净化器多少钱 浏览:787
上柴卡特配什么滤芯 浏览:940
uv光解除味净化器效果怎么样 浏览:417