『壹』 Web開發中三層架構是哪三層。。分別放些什麼。。
那就是數據層,表示層,業務層!
數據層:用於與數據打交道啊``
表示層:用戶顯示的表示層
業務層:數據層與業務層的橋梁
三層的好處在於表示明確,擴展性好,邏輯性好,但要加開發成本!
『貳』 web前端開發開發技術架構有哪些
前端的應用非常廣泛,基本網站、APP、HTML5小程序等都需要前端開發,所以只要是互聯網產品基本都需要前端。
前端程序猿切頁面寫頁面,Web上、H5上的炫酷效果,是前端開發大展身手的地方。最常見的用於前端開發的技術組合是:
HTML+CSS+JavaScript。
web前端是在開發人員中最直接面向產品、面向用戶的設計人員,一個開發團隊的成果是要靠web前端去展現,因為用戶不會去關心後台的處理有多麼強大。
後端開發是寫後台,各種業務邏輯、數據處理、模塊介面、客戶端介面等等。後端開發者通常精通於一種Web編程語言和一個資料庫管理系統。電商平台點擊篩選條件下面為你篩選出來的寶貝的功能以及付款人數數據的變化等都是由後台來實現提供的。
目前web產品交互越來越復雜,用戶使用體驗和網站前端性能優化這些都得靠web前端去做。
前端開發則是網站的前台代碼實現,包括基本的HTML和CSS以及JavaScript/ajax,最新的高級版本HTML5、CSS3,以及SVG等。
前端開發需要學習的技術
1 掌握基本web前端開發技術:HTML、CSS、JavaScript、DOM、BOM、AJAX等,而且要了解它們在不同瀏覽器上的兼容情況、渲染原理和存在的Bug
2 必須掌握網站性能優化、SEO和伺服器端開發技術的基礎知識
3 必須學會運用各種web前端開發與測試工具進行輔助開發
4 除了掌握技術層面的知識,還要掌握理論層面的知識,包括代碼的可維護性、組件的易用性、分層語義模板和瀏覽器分級支持等
5 未來web前端開發工程師還要研究HTML5、web視覺設計、網站配色、網站交互設計模式等相關技術
web前端有廣闊的發展空間,app、小程序、移動端、pc端等都網站是需要前端技術的開發支持才能夠完成,技術門檻相對較低、需求量較大,薪資待遇良好。只要是互聯網端的客戶界面,就需要前端來製作完成,前端開發的編程量不大,但是需要部分編程,入門簡單,但是要學的深入需要一個過程。
Web前端招聘崗位
• 前端開發工程師、Web開發工程師、網頁開發工程師、HTML開發工程師...
• H5開發工程師、移動應用開發工程師、App開發工程師、小程序開發工程師...
• JS開發工程師、Vue.js開發工程師、Node.js開發工程師、前端架構師...
• 小游戲開發工程師、數據可視化開發工程師、WebGL開發工程師、WebVR開 發工程師、Web安全工程師...
『叄』 Web技術的三個關鍵技術是什麼
先來看看兩個名詞:
一、超文本(hypertext)
一種全局性的信息結構,它將文檔中的不同部分通過關鍵字建立鏈接,使信息得以用交互方式搜索。它是超級文本的簡稱。
二、超媒體(hypermedia)
超媒體是超文本(hypertext)和多媒體在信息瀏覽環境下的結合。它是超級媒體的簡稱。用戶不僅能從一個文本跳到另一個文本,而且可以激活一段聲音,顯示一個圖形,甚至可以播放一段動畫。
Internet採用超文本和超媒體的信息組織方式,將信息的鏈接擴展到整個Internet上。Web就是一種超文本信息系統,Web的一個主要的概念就是超文本連接,它使得文本不再象一本書一樣是固定的線性的。而是可以從一個位置跳到另外的位置。你可以從中獲取更多的信息。可以轉到別的主題上。想要了解某一個主題的內容只要在這個主題上點一下,就可以跳轉到包含這一主題的文檔上。正是這種多連接性我們才把它稱為Web。
Web的特點:
一、Web是圖形化的和易於導航的(navigate)
Web 非常流行的一個很重要的原因就在於它可以在一頁上同時顯示色彩豐富的圖形和文本的性能。在Web之前Internet上的信息只有文本形式。Web可以提供將圖形、音頻、視頻信息集合於一體的特性。同時,Web是非常易於導航的,只需要從一個連接跳到另一個連接,就可以在各頁各站點之間進行瀏覽了。
二、Web與平台無關
無論你的系統平台是什麼,你都可以通過Internet訪問WWW。瀏覽WWW對你的系統平台沒有什麼限制。無論從Windows平台、UNIX平台、Macintosh還是別的什麼平台我們都可以訪問WWW。對WWW的訪問是通過一種叫做瀏覽器(browser)的軟體實現的。如Netscape 的Navigator、NCSA的Mosaic、Microsoft的Explorer等。
三、Web是分布式的
大量的圖形、音頻和視頻信息會佔用相當大的磁碟空間,我們甚至無法預知信息的多少。對於Web沒有必要把所有信息都放在一起,信息可以放在不同的站點上。只需要在瀏覽器中指明這個站點就可以了。使在物理上並不一定在一個站點的信息在邏輯上一體化,從用戶來看這些信息是一體的。
Web 是動態的
最後,由於各Web站點的信息包含站點本身的信息,信息的提供者可以經常對站上的信息進行更新。如某個協議的發展狀況,公司的廣告等等。一般各信息站點都盡量保證信息的時間性。所以Web站點上的信息是動態的。經常更新的。這一點是由信息的提供者保證的。
Web動態的特性還表現在Web是交互的。
Web的交互性首先表現在它的超連接上,用戶的瀏覽順序和所到站點完全由他自己決定。另外通過FORM的形式可以從伺服器方獲得動態的信息。用戶通過填寫FORM可以向伺服器提交請求,伺服器可以根據用戶的請求返回相應信息。
『肆』 Java Web 開發時的 MVC 模型和軟體的3層架構(表現層,業務邏輯層,數據訪問層)有哪些區別和聯系
三層架構和MVC是有明顯區別的,MVC應該是展現模式(三個加起來以後才是三層架構中的UI層)
三層架構(3-tier application) 通常意義上的三層架構就是將整個業務應用劃分為:表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)。區分層次的目的即為了「高內聚,低耦合」的思想。
1、表現層(UI):通俗講就是展現給用戶的界面,即用戶在使用一個系統的時候他的所見所得。
2、業務邏輯層(BLL):針對具體問題的操作,也可以說是對數據層的操作,對數據業務邏輯處理。
3、數據訪問層(DAL):該層所做事務直接操作資料庫,針對數據的增添、刪除、修改、更新、查找等。
MVC是 Model-View-Controller,嚴格說這三個加起來以後才是三層架構中的UI層,也就是說,MVC把三層架構中的UI層再度進行了分化,分成了控制器、視圖、實體三個部分,控制器完成頁面邏輯,通過實體來與界面層完成通話;而C層直接與三層中的BLL進行對話。
『伍』 web3層構築 是指什麼
作為Web2.0的替代物,Web3.0仍然是建立在Web2.0的基礎之上,並且實現了更加「智能化的人與人和人與機器的交流」功能的互聯網模式。區別於通常意義上的互聯網研究,本文從廣播電視媒體網路化角度出發,歸納總結了Web3.0四個方面的主要特徵,具體如下。
(1)微內容(Widget)的自由整合與有效聚合。
Web3.0將應用Mashup技術對用戶生成的內容信息進行整合,使得內容信息的特徵性更加明顯,便於檢索。將精確地闡明信息內容特徵的標簽進行整合,提高信息描述的精確度,從而便於互聯網用戶的搜索與整理。同時,對於UGC的篩選性過濾也將成為Web3.0不同於Web2.0的主要特徵之一。對於互聯網用戶的發布許可權經過長期的認證,對其發布的信息做不同可信度的分離,可信度高的信息將會被推到互聯網信息檢索的首項,同時提供信息的互聯網用戶的可信度也會得到相應的提高。
最後聚合技術的應用將在Web3.0模式下發揮更大的作用,TAG/ONTO/RSS基礎聚合設施,漸進式語義網的發展也將為Web3.0構建完備的內容聚合與應用聚合平台。將傳統意義的聚合技術和挖掘技術相結合,創造出更加個性化、搜索反應迅速、准確的「Web挖掘個性化搜索引擎」。
(2)適合多種終端平台,實現信息服務的普適性。
Web3.0的網路模式將實現不同終端的兼容,從PC互聯網到WAP手機,PDA,機頂盒,專用終端,不只應用在互聯網這一單一終端上。
現有的Web2.0隻能通過PC終端應用在互聯網這一單一的平台上,面臨現在層出不窮的新的移動終端的開發與應用都需要新的技術層面和理念層面的支持。而Web3.0將打破這一僵局,使得各種終端的用戶群體都可以享受到在互聯網上沖浪的便捷。
實現融合網路的普適化、公用顯示裝置與個人智能終端的通用,同時加入E-RAD的應用與研發,使得嵌入式技術在Web3.0模式下發揮更大的效力。
(3)良好的人性化用戶體驗、以及基礎性的個性化配置。
Web3.0同樣以人為本,將用戶的偏好作為設計的主要考慮因素。Web3.0在對於UGC篩選性的過濾的基礎上同時引入偏好信息處理與個性化引擎技術,對用戶的行為特徵進行分析,既尋找可信度高的UGC發布源,同時對互聯網用戶的搜索習慣進行整理、挖掘,得出最佳的設計方案,幫助互聯網用戶快速、准確地搜索到自己想要感興趣的信息內容,避免了大量信息帶來的搜索疲勞。
個性化搜索引擎以有效的用戶偏好信息處理為基礎,對用戶進行的各種操作以及用戶提出的各種要求為依據,來分析用戶的偏好。通過偏好系統得出的結論再歸類到一起,在某一內容主題(如體育方面)形成一種內容,搜索的聚合,推送,達到更好的滿足用戶搜索,觀看的需要。將這一技術引入廣播電視中來,將會給傳統電視帶來巨大的影響。對於數字機頂盒的應用,IPTV、WebTV的推廣提供了更好的聚合推送業務。
個性化引擎的建立是一偏好系統為基礎,偏好系統的建立要全面而且與內容聚合相聯系。有了一定的偏好分析,才能建立起完善的個性化引擎。
(4)有效和有序的數字新技術。
Web3.0將建立可信的SNS(社會網路服務系統),可管理的VoIP與IM,可控的Blog/Vlog/Wiki,實現數字通信與信息處理、網路與計算、媒體內容與業務智能、傳播與管理、藝術與人文的有序有效結合和融會貫通。
Web2.0模式下的SNS¬——網路社交平台,只是簡單地將人與人通過互聯網這一平台連接起來。通過互聯網注冊在SNS的平台上結交朋友這一途徑,並不能確保注冊信息的可靠性和有效性,並不是每一次交際圈的擴展都會帶來相應的利益需求,這一過程進行下去的結果將會導致本身信息的外泄和零亂、不可靠信息的泛濫,顛覆了人們想利用互聯網來擴展人際交往的初衷。這一問題在Web3.0模式下,將通過對用戶的真實信息的核查與認證這一方式來解決。高可信度的信息發布源為以後交際圈的擴展提供了可靠的保障,與此同時,人們在交際的同時,也可以更迅速地找到自己需要的人才,並且可以完全信任這些可信度高的用戶提供的信息,利用這些進一步擴展對自己的有利的交際圈。
Web3.0模式下可管理的VoIP與IM,同樣為互聯網用戶的使用提供了方便快捷的服務方式。可信度越高、信用度越好的用戶發布的信息將會被自動置頂,既提高了信息源發布者的可信度,同時使得這些有用、真實的信息更快地出現在用戶的面前,發揮信息的最大效力,提高了信息的使用率、降低了信息查找的時間損耗。
Web3.0模式下可控的Blog/Vlog/Wiki,同樣也是為了提高消息的利用率與查找信息的便捷度而生的。這些原本在Web2.0模式下允許用戶隨意發布的Blog/Vlog/Wiki會使得網路上堆積大量雜亂無章的信息,為用戶的搜索帶來了極大的不便。由此,Web3.0提出了「可控」這一概念,使得信息的發布與使用連接起來,如果想搜索高可信度的信息,可以點擊可信度高的用戶撰寫的Blog/Vlog/Wiki,實現可信內容與用戶訪問的對接。
web3.0典型應用:
alimama是廣告領域web3.0的應用範例。原因如下:
一:阿里媽媽突破傳統的廣告應用局限,在最大程度上聚合了所有網站的廣告位,促使互聯網廣告開放、透明,在技術上實現了網站與網站之間的廣告信息整合;
二:廣告發布者在阿里媽媽上的數據在任何位置均可以任意使用,甚至突破了web,向IM終端開放最基礎的廣告鏈接,對於移動領域更不在話下;
三:阿里媽媽是一個第三方廣告信息集散地,用戶的信譽和買家的信譽相互結合,官方提供信息管理方法和宣傳道具,管理者、買家、賣家三方互動,促成歷史上最具特色的廣告發布平台。
雅蛙是中國目前web3.0最傑出的代表。原因如下;
1.雅蛙實現了網站信息自由聚合,真正做到了以人為本的web3.0網路理念;
2.web3.0不是一個超脫的新理念,而是一個在web1.0 2.0理念上的升華和人性化體驗,在這里仍然有非常自由的,興趣相投的人聚合在一起,交流、討論;
3.雅蛙開發的很多實用工具能讓用戶輕松體驗一頁聚合博客、QQ空間、行業資訊、收發郵件、天氣預報、搜索引擎等等工具。一個頁面實現所有互聯網信息的互通。
『陸』 javaWeb開發中的標准三層如何分呢
那你就要理解什麼事MVC了。
視圖-視圖就是由HTML元素組成的界面,在新式的Web應用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術已層出不窮,它們包括Macromedia Flash和象XHTML,XML/XSL,WML等一些標識語言和Web services.
模型表示企業數據和業務規則。在MVC的三個部件中,模型擁有最多的處理任務。例如它可能用象EJBs和ColdFusion Components這樣的構件對象來處理資料庫。被模型返回的數據是中立的,就是說模型與數據格式無關,這樣一個模型能為多個視圖提供數據。由於應用於模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。
控制器接受用戶的輸入並調用模型和視圖去完成用戶的需求。所以當單擊Web頁面中的超鏈接和發送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然後再確定用哪個視圖來顯示返回的數據。
『柒』 web開發中三層結構和四層結構分別指哪三層和哪四層
三層就是:MVC吧,表現層、業務層、數據讀取層
四層就是:客戶機瀏覽器、Web伺服器、數據倉庫及模型倉庫、分布式資料庫群及模型庫群
『捌』 web開發技術有三個層面,請問第三個層面是什麼
Web開發技術大體上也可以被分為客戶端技術和服務端技術兩大類
WEB開發技術包括三個層面:
a) 顯示層. 頁面製作 ,這個通常由美工完成
b) 邏輯層.主要討論的內容,包括Struts,Hibernate,模式,代碼生成技術(Xdoclet,Middlegen),自動構建(Maven)Taglib
c) 資源層. 討論資料庫的設計,Mssql,Oracle,存儲過程,觸發器.]
針對網上應用開發實例,展開Web技術三個層面的應用:
Web站點構建技術。
Web編程技術。
Web 資料庫應用開發技術。
『玖』 javaweb開發中三層架構的一個困惑
網上搜索的,不對我在找 :
java 三層架構ssh
一個spring2.5+hibernate3.2+struts2.0組合框架,使用spring的 IoC來管理應用的 所有bean,包括struts2的 action,充分發揮了spring輕量級框架的 優勢。
摘 要: 針對當前Web應用程序開發面臨的問題,結合目前比較流行的開源框架Spring、Struts和Hibernate,提出了一種開發J2EE Web應用的輕量級解決方案,以幫助開發人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。並且,通過案例具體說明了如何將這一方案應用到實際項目中。
關鍵詞: J2EE MVC Struts Spring Hibernate
大型企業級Web應用系統的開發通常要求有一個良好的軟體架構、便於協作開發和擴展升級,而傳統的開發模式不能很好地滿足這些要求。本文針對當前Web應用程序開發面臨的問題,結合目前比較流行的開源框架SSH(Spring、Struts、Hibernate),提出一種開發J2EE 企業級Web應用的輕量級解決方案,並通過案例具體說明如何將這一方案應用到實際項目中。
1 框架技術
著名的軟體大師Ralph Johnson對框架(Framework)進行了如下的定義: 框架是整個系統或系統的一部分的可重用設計,由一組抽象的類及其實例間的相互作用方式組成[1] 。
框架一般具有即插即用的可重用性、成熟的穩定性以及良好的團隊協作性。J2EE復雜的多層結構決定了大型的J2EE項目需要運用框架和設計模式來控制軟體質量。目前,市場上出現了一些商業的、開源的基於J2EE的應用框架,其中主流的框架技術有:基於MVC模式的Struts框架和基於IoC模式的 Spring框架以及對象/關系映射框架Hibernate等。
1.1 表示層框架Struts
Struts是一個在JSP Model2基礎上實現的MVC框架,主要分為模型(Model)、視圖(Viewer)和控制器(Controller)三部分,其主要的設計理念是通過控制器將表現邏輯和業務邏輯解耦,以提高系統的可維護性、可擴展性和可重用性[2] 。Struts框架的體系結構如圖1所示。
下面就圖1所示的體系結構圖分析Struts框架中的MVC組件。
(1)視圖:視圖部分主要由JSP頁面組成,其中沒有流程邏輯、業務邏輯和模型信息,只有標記。Struts自身包含了一組標記庫(TagLib),這也是Struts的精華之一,靈活運用它們可以簡化JSP頁面的代碼,提高開發效率。
(2)控制器:Struts中的Controller主要是其自身提供的ActionServlet。ActionServlet接收所有來自客戶端的請求並根據配置文件(struts-config.xml)中的定義將控制轉移到適當的Action對象。
(3)模型:Struts沒有定義具體Model層的實現,Model層通常是和業務邏輯緊密相關的,有持續化的要求。目前在商業領域和開源世界,都有一些優秀的工具可以為Model層的開發提供便利。
1.2 業務邏輯層框架Spring
Spring是一個解決了許多J2EE開發中常見問題並能夠替代EJB技術的強大的輕量級框架。這里所說的輕量級指的是 Spring框架本身,而不是指Spring只能用於輕量級的應用開發。Spring的輕盈體現在其框架本身的基礎結構以及對其他應用工具的支持和裝配能力。與EJB這種龐然大物相比,Spring可使程序研發人員把各個技術層次之間的風險降低。
Spring框架的核心是控制翻轉IoC(Inversion of Control)/依賴注入DI(Dependence Injection)機制。IoC是指由容器中控制組件之間的關系(這里,容器是指為組件提供特定服務和技術支持的一個標准化的運行時的環境)而非傳統實現中由程序代碼直接操控,這種將控制權由程序代碼到外部容器的轉移,稱為「翻轉」[3] 。DI是對IoC更形象的解釋,即由容器在運行期間動態地將依賴關系(如構造參數、構造對象或介面)注入到組件之中[3] 。 Spring採用設值注入(使用Setter方法實現依賴)和構造子注入(在構造方法中實現依賴)的機制,通過配置文件管理組建的協作對象,創建可以構造組件的IoC容器。這樣,不需要編寫工廠模式、單例模式或者其他構造的方法,就可以通過容器直接獲取所需的業務組件。Spring框架的結構如圖2所示。
Spring框架由七個定義明確的模塊組成,且每個模塊或組件都可以單獨存在,或者與其他一個或多個模塊聯合實現。Spring Core Container是一個用來管理業務組件的IoC容器,是Spring應用的核心;Spring DAO和Spring ORM不僅提供數據訪問的抽象模塊,還集成了對Hibernate、JDO和iBatis等流行的對象關系映射框架的支持模塊,並且提供了緩沖連接池、事務處理等重要的服務功能,保證了系統的性能和數據的完整性;Sprnig Web模塊提供了Web應用的一些抽象封裝,可以將Struts、Webwork等Web框架與Spring整合成為適用於自己的解決方案。
Spring框架可以成為企業級應用程序一站式的解決方案,同時它也是模塊化的框架,允許開發人員自由地挑選適合自己應用的模塊進行開發。Spring框架式是一個松耦合的框架,框架的部分耦合度被設計為最小,在各個層次上具體選用哪個框架取決於開發者的需要。
1.3 數據持久層框架Hibernate
O/R mapping技術是為了解決關系型資料庫和面向對象的程序設計之間不匹配的矛盾而產生的。Hibernate是目前最為流行的O/R mapping框架,它在關系型資料庫和Java對象之間做了一個自動映射,使得程序員可以以非常簡單的方式實現對資料庫的操作。Hibernate工作原理如圖3所示。
Hibernate通過對JDBC的封裝,向程序員屏蔽了底層的資料庫操作,使程序員專注於OO程序的開發,有助於提高開發效率。程序員訪問資料庫所需要做的就是為持久化對象編制xml映射文件[4] 。
底層資料庫的改變只需要簡單地更改初始化配置文件(hibernate.cfg.xml或者hibernate.properties)即可,不會對應用程序產生影響。
Hibernate有自己的面向對象的查詢語言HQL,HQL功能強大,支持目前大部分主流的資料庫,如Oracle、DB2、MySQL、 Microsoft SQL Server等,是目前應用最廣泛的O/R映射工具。Hibernate為快速開發應用程序提供了底層的支持。
2 基於SSH組合框架的Web應用模型設計與實現
2.1 集成SSH的新型J2EE框架
前面分析了基於J2EE的三種框架技術,下面通過集成以上三種框架技術來對傳統的J2EE Web開發模型加以改進,以形成一種新的、輕量型的J2EE架構。
集成SSH框架 的系統框架圖 如圖4所示,系統從職責上分為四層:表示層、業務邏輯層、數據持久層和域模塊層。其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在 Struts框架的模型部分,利用Hibernate框架對持久層提供支持,業務層用Spring支持。具體做法是:用面向對象的分析方法根據需求提出一些模型,將這些模型實現為基本的Java對象,然後編寫基本的DAO介面,並給出Hibernate的DAO實現,採用Hibernate架構實現的 DAO類來實現Java類與資料庫之間的轉換和訪問,最後由Spring完成業務邏輯。
系統的基本業務流程是:在表示層中,首先通過JSP頁面實現交互界面,負責傳送請求(Request)和接收響應(Response),然後Struts根據配置文件 (struts-config.xml)將ActionServlet接收到的Request委派給相應的Action處理。在業務層中,管理服務組件的 Spring IoC容器負責向Action提供業務模型(Model)組件和該組件的協作對象數據處理(DAO)組件完成業務邏輯,並提供事務處理、緩沖池等容器組件以提升系統性能和保證數據的完整性。而在持久層中,則依賴於Hibernate的對象化映射和資料庫交互,處理DAO組件請求的數據,並返回處理結果。
採用上述開發模型,不僅實現了視圖、控制器與模型的徹底分離,而且還實現了業務邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動,並且資料庫的變化也不會對前端有所影響,大大提高了系統的可復用性。而且由於不同層之間耦合度小,有利於團隊成員並行工作,大大提高了開發效率。
2.2 基於SSH框架 的Web應用系統的實現
下面將通過一個實際的系統來展示如何進行基於SSH框架 的Web應用開發。該系統是為某通信公司運營部開發的一個問答式系統,功能類似於網路知道和新浪愛問。由於系統的模塊較多,下面就以一個用戶管理模塊為例來說明系統的開發實現過程,並將按照數據持久層、業務邏輯層、表示層的順序說明系統構建過程。
(1)數據持久層
數據持久層由Java對象持久化類和數據訪問對象(DAO)組成。每個資料庫表都對應著一個持久化對象,這樣就給予了開發者使用OO思想設計和開發的便利,同時也屏蔽了具體的資料庫和具體的數據表、欄位,消除了對資料庫操作的硬編碼在重用性上的弊端。用戶信息表的部分結構如表1所示。
Hibernate通過映射(Mapping)文件將對象(Object)與關系型數據(Relational)相關聯,因此需要編寫和資料庫表相對應的Java持久化類以及對應的映射文件。有了Java持久化類後就可以在此基礎上實現數據訪問類。在Spring框架中,數據訪問類可以從輔助類 HibernateDaoSupport繼承,這極大地方便了Hibernate框架在Spring中的使用,相應的部分代碼如下:
public class UserDao
extends HibernateDaoSupport {
public int add(User user) {
return Integer.ParseInt(this.getHibernateTemplate().save(user).toString());
}
public List findAll() {
return this.getHibernateTemplate().loadAll(User.class);
}
}
具體的Hibernate數據源、session工廠、事務管理、緩沖連接池等功能都由業務層的Spring容器提供。
(2)業務邏輯層
業務邏輯層由Spring框架支持,提供了處理業務邏輯的服務組件。開發者需要對業務對象建模,抽象出業務模型並封裝在Model組件中。由於數據持久層實現了Java持久化類並且封裝了數據訪問對象(DAO),因此可以在Model組件中方便地調用DAO組件來存取數據。Spring的IoC容器負責統一管理Model組件和DAO組件以及Spring所提供的事務處理、緩沖連接池等服務組件。
在用戶管理模塊中,通過業務建模創建了用戶模型UserService類,封裝了對用戶的許可權管理以及積分管理等功能。UserService類通過調用數據訪問類UserDao實現對用戶數據的操作。這些組件的關系將通過配置Spring框架的applicationContext.xml聯系起來,配置文件的主要內容如下:
(3)表示層
表示層結合JSP和Struts的TagLib庫處理顯示功能,利用ActionServlet將請求(*.do)映射到相應的Action,並由Action調用業務邏輯的服務組件,然後根據處理結果跳轉到Forword對象指定的響應頁面。
業務流程的部署由struts-config.xml完成。下面以一個顯示所有用戶信息的請求(ListUser.do)為例來說明配置文件的使用。
基於J2EE的Web應用以其層次性、平台無關性的優勢已經逐漸成為了電子商務、電子政務主要的解決方案。本文針對傳統的J2EE Web應用開發的弊端,提出了一種利用輕量級框架來快速搭建Web應用的解決方案,並且通過其在實際項目中的應用,證明了採用此方案可以幫助開發人員在短時間內建立結構清晰、可重用性好、維護擴展方便的Web應用程序。
參考文獻
[1] GAMMA E, HELM R, JOHNSON R, et al. Design patterns:Elements of reusable object-oriented software[M]. Addison Wesley, 1994.
[2] 孫衛琴.精通Struts:基於MVC的Java Web設計與開發[M]. 北京:電子工業出版社,2004.
[3] JOHNSON R, HOELLER J, ARENDSEN A, et al. Java/J2EE application framework reference document. V1.1.
2004.
[4] 徐長盛,戴超.一種快速開發Web應用程序方法的研究[J]. 計算機工程與設計,2004,(12):2237-2239.
[5] 夏昕,曹曉鋼,唐勇.深入淺出Hibernate[M]. 北京:電子工業出版社,2005.
[6] JOHNSON R.Expert one-on-one J2EE design and development[M]. 魏海萍譯.北京:電子工業出版社,2003.
在用ssh 開發web應用時,需要對生成的 各個類文件進行組織,下面就對一個可行的 目錄方案進行介紹:
譬如應用中有一個用戶管理模塊,則在公共包下建立一個user包,如該公共包可以為com.simon.oa,
在user包下包括如下子包
1、controler包
該包放置各種struts的 action。
2、包
該包放置各類(data access object),也就是放置對資料庫訪問的 實現類,在用myeclipse中的 「Hibernate Reverse Engineering」進行反向操作時在某一個目錄中就會生成對應某個表的 DAO,生成後可將該DAO拖到包中。在某些應用中將DAO作為介面,在該介面中包括所有對資料庫的 操作方法,然後在包建立一個hibernate包,在hibernate包中放置對DAO介面的 實現,譬如:UserDAO介面有一個實現類為UserDaoImpl,將該類放置到hibernate包中,實際的 開發傾向於後一種方式,因為對這個DAO介面可以實現spring的 IoC操作。(不知道myeclipse對此是怎麼考慮的 ,這個問題讓我糾纏了很久,誤將DAO理解成一個能夠進行實際操作的 類,而不是一個介面,以後開發要注意 )
3、model包
該包中放置hibernate反向工程生成的 bean和該bean對應的 .hbm.xml文件。
4、service包
該包放置業務操作類,譬如用戶服務類,一般情況將該用戶操作類提取一個介面,然後在service包下生成一個impl包,在impl包中才放置用戶操作介面的 實現類。該用戶介面實現類中調用DAO介面對資料庫進行操作,而調用該實現類的 方法在struts的 action中。
5、vo包(value object)
vo包中的 中包括struts中使用的 POJO及actionform等信息。
VO: Value Object
DTO: Data Transfer Object
個人理解VO和DTO是類似的 東西,原則上VO和DTO只有Public Fields,主要用於進程之間數據傳遞的 問題,VO和DTO不會傳遞到表示層,在業務層就會被吸收。但看到很多人在建立VO和DTO時,也含有Setter,Getter屬性和一些其它的 輔助方法,這也無可厚非,我自己也不能確定這對不對。