Struts2内置拦截器的简要介绍
http://www.th7.cn/Program/java/201405/195296.shtml
標(biāo)記有(*)要著重了解:
(1)alias(別名攔截器):允許參數(shù)在跨越多個(gè)請(qǐng)求時(shí)使用不同別名,該攔截器可將多個(gè)Action采用不同名字鏈接起來(lái),然后用于處理同一信息。
(2)autowiring(自動(dòng)裝配攔截器):主要用于當(dāng)Struts2和Spring整合時(shí),Struts2可以使用自動(dòng)裝配的方式來(lái)訪問(wèn)Spring容器中的Bean。
(3)(*)chain(鏈攔截器):構(gòu)建一個(gè)Action鏈,使當(dāng)前Action可以訪問(wèn)前一個(gè)Action的請(qǐng)求信息,一般和<result type="chain" .../>一起使用。
(4)(*)checkbox(多選框攔截器):將沒(méi)有選中的checkbox項(xiàng)設(shè)置為false,協(xié)助管理多選框。在HTTP請(qǐng)求里,那些沒(méi)有被選中的項(xiàng)通常沒(méi)有任何值。
(5)conversionError(轉(zhuǎn)換器錯(cuò)誤攔截器):這是一個(gè)負(fù)責(zé)處理類型轉(zhuǎn)換錯(cuò)誤的攔截器,它負(fù)責(zé)將類型轉(zhuǎn)換錯(cuò)誤從ActionContext中取出,并轉(zhuǎn)換成Action的 FieldError錯(cuò)誤。
(6)(*)createSession(創(chuàng)建Session攔截器):該攔截器負(fù)責(zé)創(chuàng)建一個(gè)HttpSession對(duì)象,主要用于那些需要有HttpSession對(duì)象才能正常工作的攔截器中。
(7)(*)clearSession(清除Session攔截器):負(fù)責(zé)銷毀HttpSession對(duì)象.
(8)(*)debugging(調(diào)試攔截器):當(dāng)使用Struts2的開(kāi)發(fā)模式時(shí),這個(gè)攔截器會(huì)提供更多的調(diào)試信息。
(9)execAndWait(執(zhí)行和等待攔截器):后臺(tái)執(zhí)行Action時(shí),給用戶顯示一個(gè)過(guò)渡性的等待頁(yè)面。
(10)externalRef(擴(kuò)展攔截器):負(fù)責(zé)擴(kuò)展引用
(11)(*)exception(異常攔截器):將Action拋出的異常映射到結(jié)果,這樣就通過(guò)重定向自動(dòng)處理異常。
(12)(*)fileUpload(文件上傳攔截器):這個(gè)攔截器主要用于文件上傳,它負(fù)責(zé)解析表單中文件域的內(nèi)容。
(13)(*)i18n(國(guó)際化攔截器):主要負(fù)責(zé)把用戶所選的語(yǔ)言、區(qū)域放入用戶Session中。
(14)logger(日志攔截器):主要是輸出Action的名字,提供簡(jiǎn)單的日志輸出。
(15)modelDriven(模型驅(qū)動(dòng)攔截器):這是一個(gè)用于模型驅(qū)動(dòng)的攔截器,當(dāng)某個(gè)Action類實(shí)現(xiàn)了ModelDriven接口時(shí),它負(fù)責(zé)把getModel()方法的結(jié)果堆入ValueStack中。
(16)scopedModelDriven(作用域模型驅(qū)動(dòng)攔截器):如果一個(gè)Action實(shí)現(xiàn)了一個(gè)ScopedModelDriven接口,該攔截器負(fù)責(zé)從指定生存范圍中找出指定的Model,并將通過(guò)setModel方法將該Model傳給Action實(shí)例。
(17)(*)params(參數(shù)過(guò)濾攔截器):這是一個(gè)最基本的攔截器,它負(fù)責(zé)解析HTTP請(qǐng)求中的參數(shù),并將參數(shù)值設(shè)置成Action對(duì)應(yīng)的屬性值。
(18)prepare(預(yù)備攔截器):如果action實(shí)現(xiàn)了Preparable接口,將會(huì)調(diào)用該攔截器的prepare()方法。
(19)(*)staticParams(靜態(tài)參數(shù)攔截器):這個(gè)攔截器負(fù)責(zé)將xml中<action>標(biāo)簽下<param>標(biāo)簽中的參數(shù)傳入action。
(20)scope(作用域攔截器):這是范圍轉(zhuǎn)換攔截器,它可以將Action狀態(tài)信息保存到HttpSession范圍,或者保存到ServletContext范圍內(nèi)。
(21)servletConfig(Servlet配置攔截器):如果某個(gè)Action需要直接訪問(wèn)Servlet API,就是通過(guò)這個(gè)攔截器實(shí)現(xiàn)的,它提供訪問(wèn)HttpServletRequest和HttpServletResponse的方法,以map方式訪問(wèn)。
(22)roles(角色攔截器):這是一個(gè)JAAS(Java Authentication and Authorization Service,Java授權(quán)和認(rèn)證服務(wù))攔截器,只有當(dāng)瀏覽者取得合適的授權(quán) 后,才可以調(diào)用被該攔截器攔截的Action。
(23)(*)timer(計(jì)時(shí)攔截器):這個(gè)攔截器負(fù)責(zé)輸出Action的執(zhí)行時(shí)間,在分析該Action的性能瓶頸時(shí)比較有用。
(24)(*)token(令牌攔截器):這個(gè)攔截器主要用于阻止重復(fù)提交,它檢查傳到Action中的token,從而防止多次提交。
(25)(*)tokenSession(令牌會(huì)話攔截器):這個(gè)攔截器的作用與前一個(gè)基本類似,只是它把非法提交的數(shù)據(jù)保存在HttpSession中,不跳轉(zhuǎn)到錯(cuò)誤頁(yè)面,再次生成與第一次相同的響應(yīng)頁(yè)面。
(26)(*)validation(驗(yàn)證攔截器):通過(guò)執(zhí)行在xxxAction-validation.xml中定義的校驗(yàn)器,從而完成數(shù)據(jù)校驗(yàn)。
(27)(*)workflow(工作流攔截器):這個(gè)攔截器負(fù)責(zé)調(diào)用Action類中的validate方法,如果校驗(yàn)失敗,則不執(zhí)行業(yè)務(wù)方法,而是返回input的邏輯視圖。
(28)jsonValidation(json攔截器):驗(yàn)證失敗時(shí),可以將fieldError和actionErrors信息序列化成json,返回給客戶端
(29)profiling(概要攔截器):允許Action記錄簡(jiǎn)單的概要信息。
(30)actionMappingParams(Action映射攔截器):Parameters set by the action mapping are not set/not available through ParameterAware
(30)annotationWorkflow(注解工作流攔截器):利用注解替代XML配置,使用annotationWorkflow攔截器可以使用@After、@Before、@BeforeResult等注解,執(zhí)行流程為before-execute-beforeResult-after順序
(31)store(消息存儲(chǔ)攔截器):在會(huì)話中為Action存儲(chǔ)和檢索消息、字段錯(cuò)誤以及Action錯(cuò)誤,該攔截器要求Action實(shí)現(xiàn)ValidationAware接口。
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的Struts2内置拦截器的简要介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 面向对象程序设计(OOP)的六大原则
- 下一篇: 阅读openjdk源代码