多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php框架 > 框架設(shè)計(jì) > Struts2的基本流程分析

Struts2的基本流程分析

來源:程序員人生   發(fā)布時間:2015-01-16 08:43:24 閱讀次數(shù):3268次
Struts2的基本流程分析
大致上,Struts2框架由3個部份組成,核心控制器StrutsPrepareAndExecuteFilter,業(yè)務(wù)控制器和用戶實(shí)現(xiàn)的業(yè)務(wù)邏輯
邏輯組件,而在這3個部份里,Struts2框架提供了核心控制器StrutsPrepareExecuteFilter,而用戶需要實(shí)現(xiàn)業(yè)務(wù)控制器和業(yè)務(wù)邏輯組件
核心控制器StrutsPrepareAndExecuteFilter
StrutsPrepareAndExecuteFilter控制器作為1個Filter運(yùn)行在Web利用中,它負(fù)責(zé)
攔截所有的用戶要求,當(dāng)用戶要求到達(dá)時,該Filter會過濾用戶要求,所有要求都會交給Struts框架處理
Struts2框架取得了用戶要求后,將根據(jù)要求的名字決定調(diào)用那個業(yè)務(wù)邏輯組件,例如:
對應(yīng)Login要求,Struts2調(diào)用調(diào)用名為Login的Action來處理該要求
Struts2利用中Action都被定義在struts.xml文件中,在該文件中定義Action時,定義該Action的name屬性和class屬性
其中name屬性決定該Action處理哪一個用戶要求,而class數(shù)據(jù)決定該Action的實(shí)現(xiàn)類
Struts2用于處理用戶的要求的Action實(shí)例,其實(shí)不是用戶實(shí)現(xiàn)的業(yè)務(wù)控制器,而Action代理
-由于用戶實(shí)現(xiàn)的業(yè)務(wù)控制器并沒有與Servlet API耦合,明顯沒法處理用戶要求
而Struts2框架提供了系列攔截器,該系列攔截器負(fù)責(zé)將HttpServletRequestIQ要求中的參數(shù)解析出來,傳入到Action中
并回調(diào)Action的execute方法來處理用戶要求
明顯,這是典型的AOP(面向切面編程)處理方式
用戶實(shí)現(xiàn)的Action類僅僅是Struts2的Action代理的代理目標(biāo),用戶實(shí)現(xiàn)的業(yè)務(wù)控制器(Action)則包括了對用戶要求的
處理,用戶的要求數(shù)據(jù)包括在HttpServletRequest對象,而用戶的Action類不必訪問HttpServletRequest對象,攔截器負(fù)責(zé)將HttpServletRequest
里的要求數(shù)據(jù)解析出來,并傳給業(yè)務(wù)邏輯組件Action實(shí)例


業(yè)務(wù)控制器組件就是用戶實(shí)現(xiàn)Action類的實(shí)例,Action類里通常包括1個execute方法,該方法返回1個字符串
-該字符串就是1個邏輯視圖名,當(dāng)業(yè)務(wù)控制器處理用戶要求后,根據(jù)處理結(jié)果不同,execute()方法返回不同的字符串-每一個字符串對應(yīng)1個視圖名
開發(fā)出系統(tǒng)所需要的業(yè)務(wù)控制器后,還需要配置Struts2的Action,即需要配置Action的以下3個部份的定義:
(1)Action所處理的URL
(2)Action組件所對應(yīng)的實(shí)現(xiàn)類
(3)Action返回的邏輯視圖和物理視圖資源之間的對應(yīng)關(guān)系
每一個Action都要處理1個用戶要求,而用戶要求總是包括指定的URL,當(dāng)StrutsPrepareAndExecutorFilter攔截到
用戶要求后,根據(jù)要求的URL和Action處理URL之間對應(yīng)關(guān)系來處理轉(zhuǎn)發(fā)


Struts2的模型組件
通常,MVC框架里的業(yè)務(wù)控制器會調(diào)用模型組件的方法來處理用戶要求,也就是說,業(yè)務(wù)邏輯控制器不會對用戶要求
進(jìn)行任何實(shí)際處理,用戶要求終究由模型組件負(fù)責(zé)處理,業(yè)務(wù)控制器只是中間負(fù)責(zé)調(diào)度的調(diào)度器,這也是稱Action為控制器的緣由
當(dāng)控制器需要獲得業(yè)務(wù)邏輯組件實(shí)例是,通常其實(shí)不會直接獲得業(yè)務(wù)邏輯組件實(shí)例,而是通過工廠模式來獲得邏輯組件實(shí)例,或利用其它IOC容器
(如Spring容器)來管理業(yè)務(wù)邏輯組件實(shí)例


Struts2的視圖組件(FreeMaker,Velocity和XSTL等)當(dāng)Struts2的控制器返回邏輯視圖名時,邏輯視圖并未與任何的視圖
技術(shù)管理,僅僅是返回返回1個字符串,該字符串作為邏輯視圖名


在Struts.xml文件中配置Action時,不但需要指定Action的name屬性和class屬性,還有為Action元素指定系列<result.../>子元素。每一個<result.../>子元素定義1個邏輯
視圖和物理視圖之間的映照,Struts2默許使用jsp作為視圖資源
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 播放四川美女一级毛片半小时 | 视频在线观看视频 | 校园春色亚洲激情 | 亚洲综合欧美日韩 | 手机看片福利 | 日本成人不卡 | 日韩天天摸天天澡天天爽视频 | porn在线视频一区二区 | 国产福利精品一区二区 | 播放四川美女一级毛片半小时 | 亚洲免费看片 | 手机看片国产精品 | 久久亚洲国产精品五月天 | 人操人操| 九九精品免视看国产成人 | 免费在线亚洲视频 | 欧美天堂视频 | 国内精品视频免费观看 | 国产精品乱码免费一区二区 | 国产一区二区三区高清视频 | 一级毛片一级毛片一级毛片一级毛片 | 宇都宫紫苑野外中文字幕 | 国产成人+综合亚洲+天堂 | 国产精品极品美女自在线看免费一区二区 | 久久精品视频一区二区三区 | 久久不卡一区 | 美国伊人网 | 中文字幕在线播放第一页 | 国产美女无遮挡免费网站 | 欧美日韩在线精品一区二区三区 | 国产在线不卡一区 | 欧美日韩国产亚洲综合不卡 | 久久久久久久久毛片精品 | 爆操网站 | 国产手机在线αⅴ片无码观看 | freexx性欧美hd | 最近最新中文字幕免费大全 | 欧美日韩国产色综合一二三四 | 日本色性 | 国产亚洲欧洲国产综合一区 | 双性h啪啪樱桃动漫直接观看 |