导航:首页 > 净水问答 > struts中的过滤器作用

struts中的过滤器作用

发布时间:2020-12-24 15:44:35

A. struts2 拦截器和过滤器的作用是什么

拦截器的工作原理:
当接收到一个httprequest ,
a) 当外部的httpservletrequest到来时
b) 初始到了servlet容器 传递给一个标准的过滤器链
c) FilterDispatecher会去查找相应的ActionMapper,如果找到了相应的ActionMapper它将会将控制权限交给ActionProxy
d) ActionProxy将会通过ConfigurationManager来查找配置struts.xml
i. 下一步将会 通过ActionInvocation来负责命令模式的实现(包括调用一些拦截Interceptor框架在调用action之前)
ii. Interceptor做一些拦截或者初始的工作
e) 一旦action返回,会查找相应的Result
f) Result类型可以是 jsp或者freeMark 等
g) 这些组件和ActionMapper一起返回给请求的url(注意拦截器的执行顺序)
h) 响应的返回是通过我们在web.xml中配置的过滤器
i) 如果ActionContextCleanUp是当前使用的,则FilterDispatecher将不会清理sreadlocal ActionContext;如果ActionContextCleanUp不使用,则将会去清理sreadlocals。
拦截器实现原理:

1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。
2、过滤器依赖于servlet容器,而拦截器不依赖于servlet容器。
3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。
5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。

过滤器的作用:
(1)执行Actions
过滤器通过ActionMapper对象,来判断是否应该被映射到Action.如果mapper对象指示他应该被映射,过滤链将会被终止,然后Action被调用。这一点非常重要,如果同时使用SiteMesh filter,则SiteMesh filter应该放到该过滤器前,否则Action的输出将不会被装饰。
(2)清除ActionContext
过滤器为了确保内存溢出,会自动的清除ActionContext。这可能会存在一些问题,在和其它的框架集成时,例如SiteMesh。ActionContextCleanUp提供了怎么处理这些问题的一些信息。
(3)维护静态内容
过滤器也会维护在Struts2中使用的一些公共的静态的内容,例如JavaScript文件,CSS文件等。搜索/struts/*范围内的请求,然后将/struts/后面的值映射到一些struts的公共包中,也可以在你的类路径中搜索。默认情况下会去查找以下包:org.apache.struts2.static.template。这样你只用请求/struts/xhtml/styles.css,XHTML UI主题默认的样式表将会被返回。同样,AJAX UI组件需要的JavaScript文件,也可以在org.apache.struts2.static包中被找到。如果你想加入其它被搜索的包,在web.xml中设置filter时,通过给"actionPackages"初始参数一个逗号隔开的包列表值来设定。

B. struts 拦截器和过滤器的区别和原理

1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。
1.filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数,而interceptor则基于java本身的反射机制,这是两者最本质的区别。
2、过滤器依赖于servlet容器,而拦截器不依赖于servlet容器。
2.filter是依赖于servlet容器的,即只能在servlet容器中执行,很显然没有servlet容器就无法来回调doFilter方法。而interceptor与servlet容器无关。
3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。
3.Filter的过滤范围比Interceptor大,Filter除了过滤请求外通过通配符可以保护页面,图片,文件等等,而Interceptor只能过滤请求。
4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。
5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。
6.Filter的过滤例外一般是在加载的时候在init方法声明,而Interceptor可以通过在xml声明是guest请求还是user请求来辨别是否过滤。

过滤器的作用:(1)执行Actions 过滤器通过ActionMapper对象,来判断是否应该被映射到Action.如果mapper对象指示他应该被映射,过滤链将会被终止,然后Action被调用。这一点非常重要,如果同时使用SiteMesh filter,则SiteMesh filter 应该放到该过滤器前,否则Action的输出将不会被装饰。 (2)清除ActionContext过滤器为了确保内存溢出,会自动的清除ActionContext。这可能会存在一些问题,在和其它的框架集成时,例如SiteMesh。ActionContextCleanUp提供了怎么处理这些问题的一些信息。 (3)维护静态内容 过滤器也会维护在Struts2中使用的一些公共的静态的内容,例如JavaScript文件,CSS文件等。搜索/struts/*范围内的请求,然后将/struts/后面的值映射到一些struts的公共包中,也可以在你的类路径中搜索。默认 情况下会去查找以下包:org.apache.struts2.static.template。这样你只用请求/struts/xhtml/styles.css,XHTML UI主题默认的样式表将会被返回。同样,AJAX UI组件需要的JavaScript文件,也可以在o rg.apache.struts2.static包中被找到。如果你想加入其它被搜索的包,在web.xml中设置filter时,通过给"actionPackages"初始参数一个逗号隔开的包列表值来设定。
拦截器的意义
其实拦截器也可以理解为调用方法的一种改进。因为拦截器可以在目标对象执行以前由系统自动执行,而调用方法则必须显示的调用才可以。这就使拦截器本身拥有更高层次的解耦性。
拦截器的作用:

比如防止表单重复提交,进行输入校验…我们可以打开struts2-core.jar包下的struts-default.xml中看到struts2都实现了哪些拦截器。大家应该也都了解struts-default.xml这个文件是我们写struts.xml时需要继承的xml文件,其中就声明了大量的拦截器和拦截器栈。我们可以找到defaultStack这个拦截器栈,它就是struts2默认加载的拦截器栈,他提供了struts2的基本操作,比如得到参数并将参数赋值给对应的action中的属性……
注:当我们手动为某个action添加一个拦截器的时候,会让defaultStack自动无效,所以需要首先引用defaultStack然后再添加其他的拦截器

C. struts2拦截器的作用是什么(它拦截什么)过滤器的作用是什么呢(过滤什么)

拦截器只能拦截Action,说明白点拦截器其实是Action的功能块,只在Action前后执行,初学者肯定会有疑问内,把功能全都写在容Action中就行了呀,为什么要把功能分出来,其实这个struts2的一个强大之处,你想想,假如这个功能块很多Action都要用,难道你的这些Action中都要写呀,就算复制粘贴也不方便呀,你把它做成功能块,哪个Action需要就在哪个Action中配置就好了,更好的方法是,创建一个公共的Action,把通用的东西全配置到这里面,其他Action引用(继承)就可以了
过滤器是拦截用户请求的,范围明显比拦截器大的多,你上网时肯定碰到过这中效果,你想下载个东西,点击下载先跳出登陆页面,这就是拦截器搞的鬼,没有登录前很多页面或Action都被他拦截了

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

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

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

E. Java框架Struts2的拦截器和过滤器有什么区别

过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的
action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者
struts的action前统一设置字符集,或者去除掉一些非法字符.

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

拦截器与过滤器的区别:

  1. 拦截器是基于java的反射机制的,而过滤器是基于函数回调。
  2. 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
  3. 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
  4. 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
  5. 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次

执行顺序:过滤前 - 拦截前 - Action处理 - 拦截后 -
过滤后。个人认为过滤是一个横向的过程,首先把客户端提交的内容进行过滤(例如未登录用户不能访问内部页面的处理);过滤通过后,拦截器将检查用户提交数据的验证,做一些前期的数据处理,接着把处理后的数据发给对应的Action;Action处理完成返回后,拦截器还可以做其他过程(还没想到要做啥),再向上返回到过滤器的后续操作。

F. struts2过滤器可以过滤什么

WEB.xml中配置struts2的代码片段
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
'/*'是拦截所有的url,你这里可以配置你的过滤规则的啊(例如/*.jsp、/*_aaa.jsp等)专,但是一般不属需要修改的,改了以后,扩展起来会给你带来一些的不必要的麻烦的

G. struts2过滤器

WEB.xml中配置struts2的代码片段
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
'/*'是拦截所有的url,你这里可以配置你的过滤规则的啊(例如/*.jsp、/*_aaa.jsp等),但是版一般不需要修改的,改权了以后,扩展起来会给你带来一些的不必要的麻烦的

H. Java中的Struts2中的过滤器和Struts2配置文件属性

filter-name指定了name后,在配置url-pattern的时候又是一个filter-mapping的节点里的元素。这时需要回一个name值与答filter相对应。
package name用来指定一个虚拟的目录,供客户端来访问。method指进入action的后个方法。result name是在action中reture的那个字符串,用来识别,当前请求状态。
type是struts2定义好的,有chain和dispatcher等。用来进行不同的的跳转请求!

I. struts2 拦截器和过滤器的作用是什么

struts2拦截器,在AOP中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。过滤器是输送介质管道上不可缺少的一种装置,通常安装在减压阀、泄压阀、定水位阀 ,方工过滤器其它设备的进口端设备。

J. struts2拦截器和过滤器的区别

拦截器和过滤器的区别:

1、拦截器是基于java的反射机制的,而过滤器是基于函数回调

2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器

3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用

4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能

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

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

下面通过实例来看一下过滤器和拦截器的区别:

使用拦截器进行/admin 目录下jsp页面的过滤

[html]view plain

阅读全文

与struts中的过滤器作用相关的资料

热点内容
污水的处理程度是什么意思 浏览:584
pp和pp树脂有什么区别 浏览:44
沼泽过滤要一直开吗 浏览:482
为什么原水没水垢煮过后有水垢呢 浏览:712
陶瓷环放在过滤第几格 浏览:364
玻璃砂滤芯如何抽滤 浏览:628
过滤内部水垢如何清除 浏览:102
喷水织机怎么做到零污水 浏览:232
新款a3机油滤芯在哪里 浏览:377
15款高尔夫空调滤芯怎么拆 浏览:318
树脂包下水管道 浏览:768
青海离子交换树脂厂家 浏览:890
滤油器滤芯一般用什么清洗 浏览:808
污水处理厂雨季检查表 浏览:942
过滤器资讯平台 浏览:372
超纯水的悬浮物浓度是多少 浏览:126
合成氨催化剂废水处理 浏览:305
原神纯水志愿什么时候开始 浏览:766
生活污水熟石灰除磷 浏览:626
氧化聚乙烯蜡环氧树脂 浏览:410