唐立果 王琦 張揚 陳義明
摘要:該文深入分析了Struts 2框架對Web應(yīng)用程序基本單元request與response過程通用功能的實現(xiàn)細節(jié),著重研究了基于ActionContext與ValueStack的數(shù)據(jù)傳遞機制和基于可拔插攔截器的控制功能實現(xiàn)機制,總結(jié)了攔截器機制的軟件工程原理及優(yōu)越性。對Struts 2框架的深入掌握和靈活使用及類似框架的開發(fā)提供指導(dǎo)和借鑒。
關(guān)鍵詞:Struts 2框架;數(shù)據(jù)轉(zhuǎn)移;值棧(ValueStack);攔截器
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)26-6067-03
Web應(yīng)用的基本構(gòu)成單位是請求request和響應(yīng)response,用戶提交包含表單數(shù)據(jù)(Form)的請求網(wǎng)頁,服務(wù)器獲取其中的請求數(shù)據(jù),進行業(yè)務(wù)處理后將結(jié)果包含在響應(yīng)網(wǎng)頁中返回給用戶。 在這個過程中,服務(wù)器端程序需要完成一系列的操作處理:獲取請求表單數(shù)據(jù)→驗證表單數(shù)據(jù)→字符串類型轉(zhuǎn)換和對象封裝→業(yè)務(wù)處理→結(jié)果返回與網(wǎng)頁跳轉(zhuǎn)響應(yīng)。這些操作除了業(yè)務(wù)處理因應(yīng)用不同而顯示差異外,其他的基本相同[1, 2]。
僅使用JSP(Java Server Page)技術(shù)的應(yīng)用程序需要不斷機械地重復(fù)實現(xiàn)這些功能操作,阻礙了開發(fā)效率的提高。軟件框架技術(shù)將這些共同的功能操作加以實現(xiàn),達到了軟件重用的目的。程序員專注于業(yè)務(wù)邏輯的開發(fā),極大地提高了開發(fā)效率和軟件質(zhì)量。Struts 2是其中非常優(yōu)秀的一個Java EE框架,近年來得到開發(fā)人員的認可和廣泛應(yīng)用[3-5]。
本文深入分析Struts 2框架中上述通用功能的實現(xiàn)細節(jié),用軟件工程理論研究它的實現(xiàn)原理。
1 Struts2控制流程
Request和response是構(gòu)成web應(yīng)用程序的基本單元,請求網(wǎng)頁提交的表單數(shù)據(jù)經(jīng)服務(wù)器處理后的結(jié)果通過響應(yīng)網(wǎng)頁返回給用戶。……