导航:首页 > 净水问答 > 常见struts2过滤器

常见struts2过滤器

发布时间:2021-02-27 08:01:42

Ⅰ struts2过滤器都做了什么StrutsPrepareAndExecuteFilter过滤器的地

FilterDispatcher是早期struts2的过滤器,后期的都用StrutsPrepareAndExecuteFilter了,如 2.1.6、2.1.8。StrutsPrepareAndExecuteFilter名字已经很能说明问题了,prepare与execute,前者表示准备,可以说是指filter中的init方法,即配制的导入;后者表示进行过滤,指doFilter方法,即将request请求,转发给对应的 action去处理。

FilterDispatcher是struts2.0.x到2.1.2版本的核心过滤器.!
StrutsPrepareAndExecuteFilter是自2.1.3开始就替代了FilterDispatcher的.!
这样的改革当然是有好处的.!
为什么这么说.? 应该知道如果我们自己定义过滤器的话, 是要放在strtus2的过滤器之前的, 如果放在struts2过滤器之后,你自己的过滤器对action的过滤作用就废了,不会有效!除非你是访问jsp/html!
那我现在有需求, 我必须使用Action的环境,而又想在执行action之前拿filter做一些事, 用FilterDispatcher是做不到的.!
那么StrutsPrepareAndExecuteFilter可以把他拆分成StrutsPrepareFilter和StrutsExecuteFilter,可以在这两个过滤器之间加上我们自己的过滤器.!
给你打个比喻, 现在有病人要做手术, 现在struts2要做两件事, 搭病床(环境),执行手术.! 那么打麻药的工作呢.? 不可能要病人站着打吧, 所以必须有病床的环境,打完麻药之后再动手术.! 这个比喻非常形象了.!

如果是2.1.3之前的版本,用org.apache.struts2.dispatcher.FilterDispatcher,
否则,用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。

从Struts2.1.3开始,将废弃ActionContextCleanUp过滤器,而在StrutsPrepareAndExecuteFilter过滤器中包含相应的功能。
三个初始化参数:
1、config参数:指定要加载的配置文件。逗号分割。
2、actionPackages参数:指定Action类所在的包空间。逗号分割。
3、configProviders参数:自定义配置文件提供者,需要实现ConfigurationProvider接口类。逗号分割。

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.cjm.web.action</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

如果程序报类找不到异常,且后面有 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
等信息,可能是你的版本问题.解决方法是确定你的struts版本,如果是2.1.3之前的版本,用 org.apache.struts2.dispatcher.FilterDispatcher,以后的版本则配置org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

Ⅱ 如何配置struts2的过滤器

你说的是拦截器吧
第一步:创建一个类实现Intercepter接口并实现其中方法
第二步:注册拦截器(在struts.xml)如:
<package name="cust"
namespace="/cust"
extends="struts-default">
<interceptors>
<!-- 注册拦截器 -->
<interceptor name="first"
class="com.interceptor.FirstInterceptor"/>
<interceptor name="second"
class="com.interceptor.SecondInterceptor"/>
<!-- 注册拦截器栈,将所有拦截器打包在一起 -->
<interceptor-stack name="mystack">
<interceptor-ref name="first"/>
<interceptor-ref name="second"/>
<!-- 引用自定义的拦截器时,会使struts2自带的拦截器失效
因此,要将默认的拦截器加入到自定义的拦截器栈中 -->
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<!--第三步: 引用拦截器 ,

<action name="toUpdateCustomer"
class="com.action.ToUpdateCustomerAction"
method="execute">
<!-- 引用拦截器 ,
<interceptor-ref name="first"/>
<interceptor-ref name="first"/>-->
<!-- 引用拦截器栈,会一次将所有的拦截器引用 -->
<interceptor-ref name="mystack"/>
<result name="success">
/WEB-INF/cust/update_customer.jsp
</result>
</action>
</package>
供参考

Ⅲ struts2 过滤器的意思

你得报错信息是什么啊。你导入struts2的包了么

Ⅳ 如何在CentOS上搭建 Struts2+Spring+Hibernate的运行环境

Struts2+Spring+Hibernate是J2EE的最新流行框架。本篇是我搭建这个框架的经验总结,有很多人搭建这个框架总会遇到


大大小小的问题,网上也没有什么行之有效的方案或成体系的介绍,所以我就决定总结一下我的搭建过程。给一些搭


建尚存问题的朋友提供帮助。


我用这个框架,实现的是基本的CRUD功能的一个雇员管理系统,本来打算丰富一下功能,但是一直没能抽出空去搞。


目前版本暂定为1.0,除了CRUD外还配置了表单验证框架JSValidation。功能都能很顺利的实现。


现在分享部分源码,来说明一些注意事项。


以下是部分搭建过程及源码:


1.先组合实现Hibernate3.2+Spring2.5支持,删除hibernate.cfg.xml文件,修改applicationContext.xml文件的内容,增加SessionFactory和dataSource的设置。


2.通过MyEclipse的向导方式,生成POJO类和对应的映射文件。


3.修改applicationContext.xml文件中<property name="mappingResources">元素的内容。


4.编写DAO接口和实现类。


5.修改applicationContext.xml文件,增加对Dao实现类的配置。


6.组合Struts2和Spring2.5,修改web.xml文件,增加struts2的所需要的过滤器配置。


7.增加struts2相应类库,增加struts2与spring的配置jar包。


8.拷贝struts.xml文件到src根目录下,再修改struts.xml文件,进行常量配置。


9.修改web.xml文件,配置Spring监听器,和上下文变量。并增加OpenSessionInViewFilter的设置。


10.写入action类。


11.配置struts.xml文件。


12.修改applicationContext.xml


13.编写Jsp文件。


14.加载运行项目。


下面是关键文件的源码:


struts.xml源码:

Ⅳ struts2 自带过滤器

过滤器很多,不知道你说的哪个

变化最大的就是struts2
的核心控制器从servlet变成了filter,并且内ACTION由单例变成了多容例,并且还包含很多分支过滤器的配置,真要用功能可以说异常强大,曾今想用它来直接做权限控制,可惜太复杂了·······放弃了

Ⅵ 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等)专,但是一般不属需要修改的,改了以后,扩展起来会给你带来一些的不必要的麻烦的

Ⅶ 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等),但是版一般不需要修改的,改权了以后,扩展起来会给你带来一些的不必要的麻烦的

Ⅷ java struts2过滤器问题

是session为空吧。session你是什么时候创建的,你先判断一下session是否为空再去取attribute

Ⅸ 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处理完成返回后,拦截器还可以做其他过程(还没想到要做啥),再向上返回到过滤器的后续操作。

Ⅹ struts2过滤器干什么用的

拦截器的工作原理:
当接收到一个httprequest
,
a)当外部的httpservletrequest到来时
b)初始到了servlet容器
传递给一个标准内的过滤器链
c)FilterDispatecher会去查找容相应的ActionMapper,如果找到了相应的ActionMapper它将会将控制权限交给Actio

阅读全文

与常见struts2过滤器相关的资料

热点内容
小区厨房污水都从商铺走路吗 浏览:832
去厚水垢的办法 浏览:140
3m6003cn怎么换过滤棉 浏览:26
污水处理厂运行台账需要哪些 浏览:872
过滤阻力主要是 浏览:288
怎么去掉暖瓶里的水垢 浏览:210
不锈钢胆除水垢方法 浏览:143
梯形树脂瓦图片大全 浏览:151
麻将净化器灯什么牌子 浏览:316
高效率超声除垢设备 浏览:34
小分子水和纯净水自来水哪个解渴 浏览:919
污水处理工艺管线设计计算 浏览:540
厦门市环保局洗车场污水处理 浏览:309
饮水机不干净会有什么影响 浏览:585
白酒淀粉过滤使用方法 浏览:329
深圳公司污水处理 浏览:699
污水处理厂泥饼含水率化验怎么做 浏览:303
用蒸馏水洗衣服好吗 浏览:524
污水排放每人每天多少立方 浏览:854
ro膜净水机的水的味道 浏览:245