官术网_书友最值得收藏!

6.2.2 Struts2工作原理

第6章任務2

Struts2框架按照模塊來劃分,可以分為Servlet過濾器(Servlet Filters)、Struts核心模塊(Servlet Core)、攔截器(Interceptors)和用戶實現(User Created)部分。Struts2框架如圖6-3所示。

圖6-3 Struts2框架

在圖6-3中,Struts2框架兩個核心部件的功能描述如下:

● FilterDispatcher是控制器的核心,是Struts2實現MVC中控制層的核心。用戶從客戶端提交HttpServletRequest請求將到達FilterDispatcher。

● ActionProxy通過struts.xml詢問框架的配置文件,找到需要調用的Action類。但在調用之前,ActionInvocation會根據配置加載Action相關的所有Interceptor(攔截器)。

Struts2框架的應用著重在控制上,如圖6-4所示。簡單的流程是:頁面→控制器→頁面,最重要的是控制器的取數據與處理后傳數據的問題。

圖6-4 Struts2框架的控制流程

在圖6-4中,FilterDispatcher、Interceptor和Action的功能描述如下:

● FilterDispatcher(核心控制器)是Struts2框架的基礎,包含了框架內部的控制流程和處理機制。FilterDispatcher是由Web應用負責加載的,Struts2的核心控制器被設計成Filter,而不是一個Servlet,負責攔截所有的用戶請求,如果用戶請求以.action結尾,則該請求被轉入Struts2框架處理。通過讀取配置文件struts.xml來確定交給哪個Action繼續處理。FilterDispatcher需在web.xml文件中配置。

● Interceptor(攔截器)是Struts2框架核心,通過攔截器,實現了AOP(Aspect-Oriented Programming,面向切面編程)。使用攔截器動態攔截Action調用的對象,可以簡化Web開發中的某些應用,例如,權限攔截器可以簡化Web應用中的權限檢查。

● Action(業務控制器)是由開發者自己編寫實現的,一般都有一個execute()方法,該方法返回一個字符串,這個字符串是一個邏輯視圖名(如success、error、input等),通過配置后對應一個視圖。用戶在開發Action和業務邏輯組件的同時,還需要編寫相關的配置文件,供核心控制器使用。

主站蜘蛛池模板: 台南县| 邯郸市| 肥东县| 湖南省| 阜阳市| 中西区| 新河县| 得荣县| 盘锦市| 平原县| 北碚区| 民勤县| 曲沃县| 开化县| 莒南县| 蕉岭县| 安岳县| 安塞县| 彰化市| 呼图壁县| 定远县| 新龙县| 宁国市| 大名县| 札达县| 特克斯县| 瓮安县| 宜阳县| 曲阳县| 遵义市| 齐河县| 嘉峪关市| 信宜市| 嵊州市| 新源县| 高州市| 玉屏| 天长市| 宜州市| 邮箱| 乐陵市|