導航:首頁 > 凈水問答 > 常見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過濾器相關的資料

熱點內容
磷脂油廢水 瀏覽:452
21款CT6空調濾芯怎麼換 瀏覽:172
濾芯收塵器多少錢一台 瀏覽:746
耐水煮玻璃漆樹脂 瀏覽:80
廢水暖零件是水箱么 瀏覽:812
電瓶車電瓶加蒸餾水後能馬上充電嗎 瀏覽:994
國內做RO膜招聘 瀏覽:524
安裝前置過濾器需要加什麼 瀏覽:879
污廢水管道 瀏覽:256
凈空氣凈化器多少錢 瀏覽:607
廢水處理工作防護 瀏覽:743
如何把污水處理廠經營好 瀏覽:111
十渡污水 瀏覽:971
土壤陽離子交換量都多大 瀏覽:317
為什麼要求雨污水分離 瀏覽:469
斯麥恩凈水器濾芯怎麼換視頻 瀏覽:618
利用沼氣池做污水處理 瀏覽:815
樹脂能用多長時間 瀏覽:225
幾十度熱水才有水垢 瀏覽:363
漢斯頓凈水器羅山縣哪裡有賣 瀏覽:310