国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JBuilder2005 Struts深度體驗之概述

2019-11-17 06:21:08
字體:
來源:轉載
供稿:網友

  Struts是基于Model 2實現的技術框架,Model 2是經典的MVC(Model,View,Control)模型的Web應用變體,這個改變主要由于HTTP協議的無狀態性引起的。Model 2的目的和MVC一樣,也是利用控制器來分離模型和視圖,達到不同層間松散耦合的效果,提高系統靈活性、復用性和可維護性。在多數情況下,你可以將Model 2與MVC等同起來。

  圖 1表示一個基于java技術典型的MVC網絡應用,從中可以看出MVC中的各個部分對應于J2EE哪些實現技術。

JBuilder2005 Struts深度體驗之概述
圖 1 MVC和J2EE技術

  在利用Model 2之前,我們把所有的表示邏輯和業務邏輯都集中在一起(如我們前兩個專題中的login.jsp),有時也稱這種應用模式為Model 1,Model 1的主要缺點就是緊耦合,復用性差,維護成本高。

  由于Struts就是基于Model2實現的框架,所以它底層的機制也是MVC,我們通過圖 2描述Struts的具體實現:

JBuilder2005 Struts深度體驗之概述
圖 2 Struts MVC實現

  1.框架初始化

  Struts框架總控制器(ActionServlet)完成所有初始化工作。總控制器是一個Servlet,它通過web.xml配置成自動啟動的Servlet,讀取配置文件(struts-config.xml)的配置信息,為不同的Struts模塊初始化相應的ModuleConfig對象。配置文件中的Action映射定義都保存在ActionConfig集合中,配置文件中其他配置信息分別保存在ControlConfig集合、FormBeanConfig集合、ForwardConfig集合和MessageResourcesConfig等集合中。

  要非凡指出的是,初始化動作在Web容器啟動時自動完成,初始化完成后,它將通過URL匹配映射截獲所有以.do結尾的URL請求。

  2.客戶端發送一個HTTP請求

  用戶通過提交表單或調用URL向Web應用程序器提交一個請求,請求的數據用HTTP協議上傳給Web服務器。

  3.總控制器接截獲這個請求并實例化Form Bean

  控制器接收HTTP請求,并從ActionConfig中找出對應該請求的Action子類,假如沒有對應的Action,控制器直接將請求轉發給JSP或者靜態頁面。假如有對應的Action且這個Action有一個相應的Action Form,ActionForm被實例化并用HTTP請求的數據填充其屬性,然后保存在Servlet Context中(request或session中),這樣它們就可以被其它Action對象或者JSP調用。

  此外,還可以在ActionForm填充數據后還可以調用validate()進行數據有效性自檢,并且可以返回一個包含所有錯誤信息的ActionErrors對象,假如ActionErrors不空,總控制器直接將請求返回到入口頁面。

  4.控制器將請求轉交給具體的Action處理

  控制器根據配置信息將請求切換到具體的Action,這個Form Bean也一并傳給這個Action的execute()方法。

  5.Action完成具體的業務邏輯操作

  Action很簡單,一般只包含一個execute方法,它負責執行相應的業務邏輯,假如需要,它也可能進行相應的數據檢查。執行完成之后,返回一個ActionForward對象,控制器通過該ActionForward對象來進行轉發工作。

  6.Action返回目標響應對象給總控制器

  Action根據業務處理的不同結果返回一個目標響應對象給總控制器,這個目標響應對象對應一個具體的JSP頁面或另外一個Action。
 
  7.總控制器將HTTP請求轉換到目標響應對象中。

  總控制器根據業務功能Action返回的目標響應對象,將HTTP請求轉換到這個目標響應對象中,一般情況下,它是一個具體的JSP頁面。

  8.目標響應對象將結果展現給用戶
 
  目標響應對象(JSP)將結果頁面展現給用戶。

  客戶端發送一個HTTP請求,通過Struts框架最后獲得一個HTTP響應,這一過程非常重要,它是理解Struts框架的重點。圖 2描述了Struts框架的結構,而圖 3通過一個活動圖更具體描述接受請求直至返回響應的整個過程:

JBuilder2005 Struts深度體驗之概述
圖 3 Struts接受并返回響應的中間過程
進入討論組討論。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南京市| 克山县| 资溪县| 隆安县| 大同市| 法库县| 延庆县| 兰溪市| 耒阳市| 比如县| 舒兰市| 沈阳市| 苗栗市| 黄大仙区| 扎赉特旗| 宣化县| 中卫市| 历史| 德化县| 河津市| 泌阳县| 罗城| 含山县| 邛崃市| 高邑县| 长岭县| 武汉市| 上犹县| 沭阳县| 崇义县| 微博| 南部县| 松江区| 朝阳县| 阿克陶县| 紫阳县| 河西区| 南涧| 西城区| 兴安盟| 富阳市|