成人免费看黄网站无遮挡,caowo999,se94se欧美综合色,a级精品九九九大片免费看,欧美首页,波多野结衣一二三级,日韩亚洲欧美综合

專(zhuān)業(yè)論文:基于Struts+Spring的Web應用設計與實(shí)現

時(shí)間:2021-04-01 18:13:23 論文 我要投稿

專(zhuān)業(yè)論文:基于Struts+Spring的Web應用設計與實(shí)現

  摘 要 集成Struts、Spring框架技術(shù)構建基于J2EE的Web應用可以提高J2EE項目的可重用性。本文介紹了兩種流行的開(kāi)源框架技術(shù)Struts和Spring的原理,并將這兩種框架技術(shù)整合起來(lái)應用到實(shí)際的Web項目開(kāi)發(fā)中去,從而提高項目代碼的復用性及項目開(kāi)發(fā)的效率。

專(zhuān)業(yè)論文:基于Struts+Spring的Web應用設計與實(shí)現

  關(guān)鍵詞 J2EE;Struts;Spring

  1 引言

  基于J2EE的Web應用系統以其層次性、平臺無(wú)關(guān)性逐漸被大多數的公司所認同,已經(jīng)成為電子商務(wù)主要的解決方案。傳統的JSP/Servlet開(kāi)發(fā)模式優(yōu)勢在于直接、簡(jiǎn)單,對于小型應用可以很方便、快速地進(jìn)行開(kāi)發(fā)。但是這種不加控制的開(kāi)發(fā)模式往往帶來(lái)顯示、業(yè)務(wù)和數據的高耦合性,軟件難以重用;贘2EE的框架技術(shù)是解決上述問(wèn)題的重要技術(shù),能夠有效地支持大型J2EE Web應用項目的開(kāi)發(fā)。本文通過(guò)集成Struts和Spring基于J2EE的框架技術(shù)提出了一種構建J2EE應用的框架。

  2 Struts框架技術(shù)

  The Jakarta Struts項目是由Apache發(fā)起的開(kāi)源項目,是基于MVC分離思想的杰出產(chǎn)品。Struts的Controller是通過(guò)Actionservlet對象實(shí)現的,這個(gè)控制器獲得View (JSP)的請求后根據ActionMapping對象調度對應的Model(Action對象)處理業(yè)務(wù)邏輯,并將獲得的處理結果(ActionForward對象)返回給View(JSP)來(lái)響應。同時(shí)通過(guò)ActionForm對象封裝數據在Model和View之間交互使用。Struts還通過(guò)自定義的標簽庫豐富了View層的JSP技術(shù),方便了頁(yè)面設計。

  下面我們就分別從視圖、控制、模型和Struts的配置文件struts-config.xml來(lái)介紹Struts的體系結構。

  (1)視圖。是一組JSP文件,Struts自身包含了一組可擴展的自定義標簽庫,可以簡(jiǎn)化創(chuàng )建用戶(hù)界面的過(guò)程。這些JSP文件中沒(méi)有業(yè)務(wù)邏輯,也沒(méi)有信息模型。

  (2)模型。模型主要是表示一個(gè)系統的狀態(tài)和業(yè)務(wù)邏輯。在Struts中,系統的狀態(tài)主要由ActiomForm Bean體現,對于業(yè)務(wù)邏輯通常由JavaBean或EJB組件來(lái)實(shí)現。

  (3)控制器?刂破髦饕葾ctionServlet類(lèi)和Action類(lèi)來(lái)實(shí)現,ActionServlet類(lèi)是Struts框架中的核心組件,主要負責接收HTTP請求信息。根據配置文件struts-config.xml的配置信息,把請求轉發(fā)合適的Action對象。Action類(lèi)負責調用模型的方法,更新模型的狀態(tài),并幫助控制應用程序的流程。

  (4)配置文件Struts-config.xml。當ActionServlet接收HTTP請求信息時(shí),如何決定把用戶(hù)請求轉發(fā)給哪個(gè)Action對象呢?這就需要一些描述用戶(hù)請求路徑和Action映射關(guān)系的`配置信息。在Struts中,這些配置映射信息都存儲在特定的XML文件Struts-config.xml中,在該配置文件中,每一個(gè)Action的映射信息都通過(guò)一個(gè)(action)元素來(lái)配置。這些配置信息在系統啟動(dòng)時(shí)會(huì )被讀入內存,供Struts在運行期間使用,在內存中,每一個(gè)(action)元素都對應一個(gè)ActionMapping類(lèi)的實(shí)例。

  3 Spring框架技術(shù)

  Spring的哲學(xué)是在不影響Java對象設計的情況下將Java對象加入到框架中。Spring解決了許多J2EE開(kāi)發(fā)中的常見(jiàn)問(wèn)題,它不依賴(lài)于任何的組件,是一種輕量級的容器,其核心是Bean工廠(chǎng),用以構造我們所需要的M(Model)。

  Spring框架是一個(gè)分層的應用程序開(kāi)發(fā)框架,而不是某一層,如Struts或Hibernate都屬于單獨某一層的框架。Spring致力于在整個(gè)應用程序層面架構程序,使程序的各個(gè)層面協(xié)調一致,從而發(fā)揮最大的效能。Spring能整合現有的優(yōu)秀單層框架,把它們組成連貫統一的框架。Spring框架的模塊化完成的非常好。大體上,存在如圖1所示的幾個(gè)模塊。

  其中:

  Spring核心模塊:Spring架構中最為基礎、重要的模塊。它提供了IoC容器,即依賴(lài)注入。其中,BeanFactory是最為重要的概念,對理解IoC和ApplicationContext起到了重要作用。

  Spring AOP模塊:實(shí)現了AOP聯(lián)盟中定義的AOP編程實(shí)現。如提供實(shí)現事務(wù)管理。用它來(lái)提供非管理環(huán)境下申明方式的事務(wù)、安全等服務(wù)。

  Spring Context模塊:直接位于Spring的核心模塊之上。Spring上下文模塊除了繼承Spring核心模塊的功能外還添加了用于資源綁定、事件移植、資源裝載以及裝載上下文等功能。這對于Web應用和J2EE應用十分有效。

  Spring Web模塊:提供面向Web應用集成的功能。其中ContextLoaderServlet和ContextLoaderListener正是Web模塊提供的。當同Tapestry、JSF集成時(shí)需要使用到Spring Web模塊。

  Spring DAO模塊:提供了JDBC抽象層,使得開(kāi)發(fā)者不用再去編寫(xiě)同RDBMS交互、非業(yè)務(wù)功能的JDBC代碼。而且DAO模塊還能夠分析RDBMS廠(chǎng)商專(zhuān)有的SQL錯誤代碼。同時(shí)能夠提供編程方式和聲明方式控制事務(wù)。

  Spring ORM模塊:為當前流行的O/R Mapping技術(shù)提供集成。借助于Spring框架提供的簡(jiǎn)單事務(wù)聲明,開(kāi)發(fā)者能夠很容易實(shí)現對O/R Mapping中操作的事務(wù)控制。

  Spring Web MVC模塊:提供MVC實(shí)現,清晰的劃分了Web應用中涉及到的各項內容。

  4 基于Struts+Spring框架技術(shù)的實(shí)現

  在項目開(kāi)發(fā)實(shí)踐中提出了基于Struts+Spring框架的J2EE架構。將這兩種框架整合起來(lái)用到Web項目開(kāi)發(fā)的不同層。整個(gè)架構的結構流程圖所示。

  (1)客戶(hù)端發(fā)送一個(gè)查詢(xún)請求,在JSP里提交表單時(shí)指定處理表單的path。

  <form name="spQuery" method="post"

  action="{root/create/path} /SPInfoManageAction.do"

  target="bottom" >

  (2)在struts-config.xml文件里根據path配置Action的具體名和路徑。

  <action path="/SPInfoManageAction" type="com.mycom.spmanage.spi nfomanage.action.SPInfoManageAction"

  unknown="false"

  validate="true" >

  <forward name="init"

  path="/../views/spmanage/spinfomanage/SPInfoQuery.jsp"

  redirect="false"

  contextRelative="false" />

  <forward name="SPBriefInfo"

  path="/../views/spmanage/spinfomanage/SPBriefInfo.jsp"

  redirect="false"

  contextRelative="false" />

  (3)在A(yíng)ction類(lèi)里根據JSP頁(yè)傳遞回的操作類(lèi)型operType參數來(lái)執行具體的方法,生成業(yè)務(wù)邏輯對象BO的實(shí)例,并調用BO的getSpInfoQueryBrief,返回一個(gè)結果集。

  Private ActionForward spInfoQueryBrief (ActionMapping mapping, HttpServletRequest request,

  HttpServletResponse response) throws ActionException{

  //生成BO類(lèi)的實(shí)例

  SPInfoManageBO service =(SPInfoManageBO)getBaseService().getServiceFacade("spInfoManageBO");

  //用getParameter方法獲取查詢(xún)條件

  String spShortName = request.getParameter("spShortName");

  ......

  //指向業(yè)務(wù)邏輯對象BO類(lèi)里的方法,返回結果集

  try { coll = service.getSpInfoQueryBrief(mapData);

  } catch (Exception e) {......}

  ......

  //返回參數

  request.setAttribute("spShortName",spShortName);

  ......

  //指向下一步跳轉路徑

  return mapping.findForward("SPBriefInfo");

  (4)在applicationContext.xml里配置BO的路徑以及所調用的數據庫對象DAO

  (5)在dataAccessContext.xml文件里配置數據庫對象DAO具體路徑:

  從而連接到數據庫對數據進(jìn)行增刪改查操作。并一步步返回數據到表現層,用JSP+XSL展示,從而完成一個(gè)流程的操作。

  5 結束語(yǔ)

  Struts+Spring框架是目前眾多軟件企業(yè)主流的應用技術(shù),也是J2EE未來(lái)發(fā)展的趨勢。Struts作為前臺控制框架簡(jiǎn)化了程序的開(kāi)發(fā)。使得頁(yè)面展示代碼和JAVA代碼編寫(xiě)工作有效分工,使項目的可擴展性大大增強,提高了開(kāi)發(fā)效率,降低了維護成本。Spring作為一個(gè)應用于所有層面的綜合框架,具有強大的應用功能及靈活性,適合作為一些大規模軟件項目的底層平臺;赟truts+Spring的Web應用實(shí)現了表示層、邏輯層和數據庫訪(fǎng)問(wèn)層等多層面分離,使軟件在擴展性、復用性和維護性方面上有了很大提高。具有很好的發(fā)展前景。

  參考文獻

 。1]飛思科技產(chǎn)品研發(fā)中心. 精通Spring[J ] . 電子工業(yè)出版社,2005.4

 。2]飛思科技產(chǎn)品研發(fā)中心. Java Web 服務(wù)應用開(kāi)發(fā)詳解[J ] . 電子工業(yè)出版社,2002

 。3]孫衛琴.精通Struts 基于MVC的Java Web 設計與開(kāi)發(fā).電子工業(yè)出版社, 2005.01

 。4]童春杰. 基于J2EE的分布式體系及應用.計算機應用研究2002.01

 。5]Spring網(wǎng)站:http://springframework.org

【專(zhuān)業(yè)論文:基于Struts+Spring的Web應用設計與實(shí)現】相關(guān)文章:

基于DSP整流器設計論文04-18

基于系統設計的科研管理論文03-21

低壓備自投系統設計與應用12-10

數學(xué)與應用數學(xué)專(zhuān)業(yè)求職信04-18

數學(xué)與應用數學(xué)專(zhuān)業(yè)最好的大學(xué)有哪些10-12

工業(yè)設計專(zhuān)業(yè)畢業(yè)設計(論文)范文08-12

獅子和鹿基于標準的教學(xué)設計01-17

淺析演示型多媒體課件的應用與設計原則總結05-15

FPGA數據采集與回放系統設計論文04-24

比應用教學(xué)設計04-04