導航:首頁 > 編程語言 > javaweb開發架構

javaweb開發架構

發布時間:2023-09-18 21:39:49

『壹』 常用的java Web框架簡介

Web框架是人們在使用某種語言編寫Web應用服務端時關於架構的最佳實踐

有些Web框架是從實際的Web項目抽取出來的 也就是說 做一個具體的應用項目時 採取的架構比較理想 就把這部分和領域無關 而僅和Web的請求和響應處理有關的設計拿出來 形成一個基礎 在開發別的應用項目的時候則可以從這基礎做起 讓開發者更關注領域問題 而不是Web的請求和響應的控制

也有些Web框架是直接設計出來的 很多Web框架在設計的時候也都借鑒了別的框架 吸取優點 修改不足 並根據自己的框架的定位 在特定方面有自己的發揮 形成了自己的特點 比如有的web框架追求的是松耦合性 層次 結構之間都不密切綁定 有的Web框架則追求敏捷性 強調約定而不是配置

Java 的 Web框架雖然各不相同 但基本也都是遵循特定的路數的 使用Servlet或者Filter攔截請求 使用MVC的思想設計架構 使用約定 XML或 Annotation實現配置 運用Java面向對象的特點 面向抽象實現請求和響應的流程 支持Jsp Freemarker Velocity等桐氏視圖

JSF

優點

Java EE標准 這意味著有很大的市場需求和更多的工作機會

上手快速並且相對容易

有大量可用的組件庫

缺點

大量的JSP標簽

對REST和安全支持不好

沒有一個統一的實現 既有SUN的實現 又有Apache的實現——MyFaces

國內的OperaMasks還支持AJAX 以及有開發工具 支持

Spring MVC

優點

對覆蓋綁定(overriding binding) 驗證(validation)等提供生命周期管理

與許多表示層技術/框架無縫集成 JSP/JSTL Tiles Velocity FreeMarker Excel XSL PDF 等

便於測試——歸功於IoC

缺點

大量的XML配置文件

太過靈活——沒有公共的父控制器

沒有內置的Ajax支持

Stripes

優點

不需要書寫XML配置文件

良好的學習文檔

社區成員很熱心

缺點

社區比告埋較小

不如其他的項目活躍

ActionBean裡面的URL是硬編碼的

Struts

優點

架構簡單——易於擴展

標記庫很容易利用FreeMarker或者Velocity來定製

基於控制器或者基於頁面的導航

缺點

文檔組織得很差

對新特徵過分關注

通過Google搜索到的大多是Struts x的文檔

Tapestry

優點

一旦學會它 將極大地提高生產率

HTML模板——對頁面設計師非常有利

每出一個新版本 都會有大量的創新

缺點

文檔過於概念性 不夠實用

學習曲線陡峭

發行周期長——每年都有較大的升級

Wicket

優點

對Java開發者有利(不是Web開發者)

頁面和顯示綁定緊密

社區活躍——有來自創建者的支持

缺點

HTML模板和Java代碼緊挨著

需要對OO有較好的理解

Wicket邏輯——什麼都用Java搞定

在Java的Web框架中 我使用過Struts Struts 試用過Stripes Wicket 了解過JSF SpringMVC 以我使用的經驗 我覺得看一局友散個Java Web框架應看看下面幾個方面

設計理念

一個框架設計出來應該有一個基本的思路 它為什麼要要被設計出來?有的框架的目標 就是提高效率 有的框架的目標的給用戶充分的選擇 有的框架的目標是充分了解實際需求 給用戶一個盡量合理的默認選擇 有的框架是要給使用者開發桌面程序的感覺 應該說 一個好的框架應該是實現了預期目標 體現出了自己的設計理念的

設計的合理性

設計的合理性表現在框架在一些關鍵問題上的處理 比如靈活性和敏捷性之間的權衡 硬編碼和文本配置之間的權衡 靈活性指的是可以適應用戶多樣的需求 很特殊的要求也能得到支持 有的框架的實現基於太多的約定 使得用戶只能遵循 而敏捷性指的是用戶在解決絕大多數常規問題的時候 能盡量少做工作 提高效率 框架設計者只能在這兩者見達到一個平衡點 權衡的怎麼樣 就很見水平了 硬編碼和文本配置之間的權衡也很有意思 文本配置的意義在於Java是一個編譯語言 強調代碼的封閉 講究擴展而不是修改 這種情況下文本配置信息可以很方便的在不修改程序的情況下改變程序行為 但是隨著一些靈活的腳本語言實現的 Web框架的出現 人們發現在這樣的框架中 腳本語言即做程序編碼語言 也做配置語言 還做視圖上的標記語言 這使我們對Java實現的框架有了一番新的審視 既然配置文件並沒有消除對程序的修改 為什麼不能在應編碼上下下功夫呢?

設計的平衡性

設計的平衡性指的是 框架在設計流程中各階段 各層次的實現方式時 所達到的上述權衡(靈活性和敏捷性之間的權衡等)應該是具有一致的水平 一個在控制上過分靈活 而視圖上具有非常大限制的框架是不能算做一個好的框架的

框架真的解放了開發者嗎

框架的目的是讓開發者把更多的精力放在領域問題 而非Web的請求和響應的處理問題上 而事實上框架都做到這一點了嗎?不可否認 框架的使用提高代碼的可維護性 但是框架在解放開發者這點上就未必了 有時還給開發者帶來了額外的負擔 事實上 直接使用Servlet 只要維持好代碼風格 一樣可以很有效率 當然 直接使用Servlet的靈活性就不用說了

在我接觸的Web框架中 我最推崇的是Struts 設計優雅 偏重靈活 也基本不造成額外的負擔 當然這些評價是和我參與的項目的規模有關的 其他規模的項目Struts 就未必合適了 我希望Struts 能在下面幾個方面有些改善

在提供文本配置方式的基礎上給一個約定配置的方式 讓開發者在大多數情況下可以不配置

配置也支持硬編碼 因為有時候維護可修改的硬編碼是很有效率的

lishixin/Article/program/Java/hx/201311/26313

『貳』 java web現在流行用什麼框架

主流 Java Web 開發框架有Spring 框架、MyBatis 框架、 Hibernate 框架、 Struts 2 框架等。

1、Spring 框架

Spring 框架是一個輕量級的框架,滲透了 Java EE 技術的方方面面。Spring 框架是由於軟體開發的復雜性而創建的,是一個開源框架。Spring 框架的用途不僅限於伺服器端的開發,從簡單性、可測試性和松耦合性角度而言,絕大部分 Java 應用都可以從 Spring 框架中受益。

2、MyBatis 框架

MyBatis 框架是一個優秀的數據持久層框架,可在實體類和 SQL 語句之間建立映射關系,是一種半自動化的 ORM 實現。Mybatis 的封裝性要低於 Hibernate 框架,且性能優異、簡單易學,因此應用較為廣泛。

3、Hibernate 框架

Hibernate 框架不僅是一個優秀的持久化框架,也是一個開放源代碼的對象關系映射框架。它對 JDBC 進行了輕量級的對象封裝,將 POJO 與資料庫表建立映射關系,形成一個全自動的 ORM 框架。Hibernate 框架可以自動生成 SQL 語句,且自動執行。

4、Struts 2 框架

Struts 2 框架以 WebWork 的優秀設計思想為核心,吸收 Struts 框架的部分優點,提供了一個更加簡潔的基於 MVC 設計模式實現的 Web 應用程序框架,它本質上相當於一個 Servlet。在 MVC 設計模式中,Struts 2 框架作為控制器(Controller)來建立模型與視圖的數據交互。

(2)javaweb開發架構擴展閱讀:

Java Web 開發框架應用要點:

搭建Java Web應用的開發環境-----部署Tomcat伺服器、用eclipse創建Server服務、構建Java Web項目、建立第一個JSP文件、 運行JSP文件。

第一個要點是掌握tomcat的安裝和部署。在Windows系統上安裝Tomcat相對簡單,下載壓縮解壓縮到任意目錄即可(目錄名稱不要含有中文字元)。進入tomcat的bin目錄,可以直接運行startup.bat啟動tomcat服務。

第二個要點是在eclipse中添加Server服務。把tomcat與eclipse進行關聯,方便eclipse管理tomcat。

第三個要點是構建Java Web項目。Web項目開發的第一步就是要建立項目。在新建Project項目時,選擇Dynamic Web Project項目類型,即可創建Web項目。

第四個要點是建立的項目如何在Server中運行。選擇要運行的JSP文件,單擊右鍵,在彈出的菜單中選擇Run on Server命令即可,初次運行項目時,需要配置項目在哪個Server中運行(如有多個Server)。

『叄』 當前java web 開發用得一般都是哪些框架

1.S2SH(struts2+spring+hibernate)

基於Struts2+Spring3+Hibernate4開發java Web企業應用開源框架s2jh源碼分享
spring+hibernate+struts2開發OA企業辦公管理系統源碼分享
Struts2+Hibernate3+Spring三大框架技術實現MySQL數據分頁
Spring+struts2+hibernate+easyui基礎許可權管理框架
Spring+Struts2+Hibernate三大框架開發企業人力資源管理系統源代碼下載
Spring mvc+struts2+Hibernate整合實例代碼(註解詳解)
2.S2SM(struts2+spring+mybatis)
Spring+Struts2+mybatis手動配置三大框架整合源代碼下載
Struts2+mybatis開發音樂分享系統
3.SSH(spring mvc+spring+hibernate或struts+spring+hibernate)
Spring MVC+Spring+Hibrenarte實現的簡單的CRUD項目實例
springMVC註解與hibernate完美結合完成基本的增刪改查demo源碼下載
springmvc+hibernate+spring+easyui開發bsalse進銷存後台管理系統源代碼下載
spring 3.0+spring MVC+Hibernate框架搭建教程(附:springMVC文件上傳功能)
spring+struts2+Hibernate三大框架開發某制葯廠管理系統源代碼下載
Spring mvc+struts2+Hibernate整合實例代碼(註解詳解)
4.SSM(spring mvc+spring+mybatis)
SpringMVC+Mybatis整合實現簡單許可權控制系統代碼

『肆』 現在java web主要用什麼框架

三大框架:Struts+Hibernate+Spring
Java三大框架主要用來做WEN應用。
Struts主要負責表示層的顯示
Spring利用它的IOC和AOP來處理控制業務(負責對資料庫的操作)
Hibernate主要是數據持久化到資料庫
再用jsp的servlet做網頁開發的時候有個 web.xml的映射文件,裡面有一個mapping的標簽就是用來做文件映射的。當你在瀏覽器上輸入URL得知的時候,文件就會根據你寫的名稱對應到一 個JAVA文件,根據java文件里編寫的內容顯示在瀏覽器上,就是一個網頁。
一 .Struts框架:struts是開源軟體。使用Struts的目的是為了幫助我們減少在運用MVC設計模型來開發Web應用的時間。如果我們想混合使用Servlets和JSP的優點來建立可擴展的應用,struts是一個不錯的選擇。
1.流程:伺服器啟動後,根據web.xml載入ActionServlet讀取struts-config.xml文件內容到內存。
2.架構:Struts對Model,View和Controller都提供了對應的組件。ActionServlet,這個類是Struts的核心控制器,負責攔截來自用戶的請求。
Model部分:由JavaBean組 成,ActionForm用於封裝用戶的請求參數,封裝成ActionForm對象,該對象被ActionServlet轉發給 Action,Action根據ActionFrom裡面的請求參數處理用戶的請求。JavaBean則封裝了底層的業務邏輯,包括資料庫訪問等。
View部分:該部分採用JSP實現。Struts提供了豐富的標簽庫,通過標簽庫可以減少腳本的使用,自定義的標簽庫可以實現與Model的有效交互,並增加了現實功能。對應上圖的JSP部分。
Controller組件:Controller組件有兩個部分組成——系統核心 控制器,業務邏輯控制器。 系統核心控制器,對應上圖的ActionServlet。該控制器由Struts框架提供,繼承HttpServlet 類,因此可以配置成標注的Servlet。該控制器負責攔截所有的HTTP請求,然後根據用戶請求決定是否要轉給業務邏輯控制器。業務邏輯控制器,負責處 理用戶請求,本身不具備處理能力,而是調用Model來完成處理。對應Action部分。
二.Spring框架
Spring是一個解決了許多在J2EE開發中常見的的問題的強大框架。 Springle提供了管理業務對象的一致方法並且鼓勵了注入對介面編程而不是對類變成的好習慣。Spring的架構基礎是基於使用JavaBean屬性 的Inversion of Control 容器。然而Spring在使用IoC容器作為構建玩關注所有架構層層的完整解決方案方面是獨一無二的。Spring提供了唯一的數據管理 抽象包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的數據訪問架構還集成了Hibernate和其他O/R mapping 解決方案。
三.Hibernate框架
Hibernate 是一個開源代碼的對象關系映射框架,對JDBC驚醒了費城輕量級的 的對象封裝,使得Java程序員可以隨心所欲的使用對象變成思維來操作資料庫。Hebernate可以應用在任何使用JDBC的場合,既可以在java的 客戶端程序使用,也可以在Servlet/JSP的Web應用中使用最具革命意義的事,Hibernate可以在應用EJB的J2EE架構中取代CMP, 完成數據持久化的重任
Hibernate的核心介面一共有5個,分別為:Session、 SessionFactory、Transaction、Query和Configuration。這5個核心介面在任何開發中都會用到。通過這些介面, 不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這五個核心介面分別加以介紹。
1.Session介面:負責執行被持久化對象的CRUD操作(CRUD的任務是完成與 資料庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同於 JSP應用中的HttpSession。這里當使用session這個術語時,其實指的是Hibernate中的session,而以後會將 HttpSession對象稱為用戶session。
2.SessionFactory介面:負責初始化Hibernate。它充當數據存儲 源的代理,並負責創建Session對象。這里用到了工廠模式。需要注意的是SessionFactory並不是輕量級的,因為一般情況下,一個項目通常 只需要一個SessionFactory就夠,當需要操作多個資料庫時,可以為每個資料庫指定一個SessionFactory。
3.Configuration介面:負責配置並啟動Hibernate,創建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然後創建SessionFactory對象。
4.Transaction介面:負責事務相關的操作。它是可選的,開發人員也可以設計編寫自己的底層事務處理代碼。
5.Query和Criteria介面:負責執行各種資料庫查詢。它可以使用HQL語言或SQL語句兩種表達方式。

閱讀全文

與javaweb開發架構相關的資料

熱點內容
java數字計算 瀏覽:281
java按鈕文字 瀏覽:639
python列表互換位置 瀏覽:337
sw怎麼刪除定向命令 瀏覽:757
php包含數組元素 瀏覽:666
安卓系統開發app需要什麼 瀏覽:730
ssh2項目源碼 瀏覽:288
三星提供了什麼伺服器地址 瀏覽:903
阿里雲輕量應用伺服器60元 瀏覽:160
微信公眾號支付java 瀏覽:217
蝦皮用的什麼伺服器 瀏覽:144
拍照的app哪個好用 瀏覽:890
方舟編譯器2022 瀏覽:770
一般情況下源碼注釋量 瀏覽:743
18號命令 瀏覽:871
我的世界如何將材質包加在伺服器里 瀏覽:413
縫紉pdf 瀏覽:408
軟硬體系統演算法 瀏覽:121
源碼名片哪家好 瀏覽:374
app購買是啥意思在哪裡扣費 瀏覽:393