Struts 2(一):初识Struts
【很久以前的筆記,后續(xù)繼續(xù)完善】
?
在了解Struts 2框架之前,首先了解一下Model 1和Model 2架構(gòu),以及它們的優(yōu)缺點(diǎn)。
1.1 Model 1架構(gòu)模式
Model 1的核心是JSP文件,使用Model 1開發(fā)的項(xiàng)目包含大量相互獨(dú)立的JSP文件和少部分JavaBean。使用Model 1進(jìn)行開發(fā)時(shí),Model 1的程序流程比較容易理解,用戶通過表單提交信息給JSP頁面,JSP頁面接收用戶提交的信息后通過JavaBean連接數(shù)據(jù)庫并操作數(shù)據(jù)庫,然后將結(jié)果返回給用戶,其流程如下圖所示:
?
Model 1非常容易理解,也非常容易實(shí)現(xiàn),但是它有許多缺點(diǎn):
(1)在JSP頁面中充斥著大量的Java腳本代碼,前端顯示代碼與業(yè)務(wù)邏輯代碼混合,修改某一處很容易帶來其他錯(cuò)誤
(2)代碼重用性非常差,JSP頁面中充斥著大量功能類似的代碼
(3)可擴(kuò)展性差,前期開發(fā)的項(xiàng)目如果需要添加新的功能將是非常復(fù)雜
?
1.2 Model 2架構(gòu)模式
Model 2是通過面向?qū)ο蠹夹g(shù)實(shí)現(xiàn)MVC模式,MVC中包含三個(gè)基本組成部分,分別是Model(模型,一般采用JavaBean來實(shí)現(xiàn))、View(視圖,一般采用JSP來實(shí)現(xiàn))、Controller(控制器,一般采用Servlet來實(shí)現(xiàn))。Model 2的程序流程相對(duì)Model 1來說要稍微復(fù)雜一些,首先是用戶提交信息給控制器,控制器接收用戶提交的信息并決定使用哪個(gè)模型完成業(yè)務(wù)邏輯,然后控制器根據(jù)業(yè)務(wù)處理結(jié)果決定使用哪個(gè)視圖將最終結(jié)果返回給用戶,其流程如下圖所示:
?
1.3?Struts 2框架簡(jiǎn)介
在MVC框架出現(xiàn)之前,開發(fā)人員都是通過JSP+Servlet+JavaBean的方式來實(shí)現(xiàn)MVC模式,但是隨著時(shí)間的發(fā)展,越來越多的問題暴露出來了,其中最重要的就是缺少一個(gè)標(biāo)準(zhǔn),每個(gè)社區(qū)、公司都有自己的一套標(biāo)準(zhǔn),很難進(jìn)行統(tǒng)一開發(fā)。Struts框架的出現(xiàn)改變這種格局,開發(fā)人員可以通過它為業(yè)務(wù)應(yīng)用的每一層提供支持。
Struts框架是Apache基金會(huì)中Jakarta項(xiàng)目組的一個(gè)開源項(xiàng)目,它基于MVC模式開發(fā),能夠幫助Java開發(fā)人員快速的通過MVC模式開發(fā)Web項(xiàng)目。Struts框架和其他Java架構(gòu)一樣,采用面向?qū)ο笤O(shè)計(jì),并將MVC模式運(yùn)用得淋漓盡致。Struts開源項(xiàng)目的創(chuàng)立者就是希望通過對(duì)該項(xiàng)目的研究,改進(jìn)和提高JSP、Servlet、標(biāo)簽庫以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。同時(shí)Struts框架是一個(gè)開源項(xiàng)目,開發(fā)人員可以更深入的了解其內(nèi)容實(shí)現(xiàn)機(jī)制。
Struts 2是Struts的換代代產(chǎn)品,Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)的差別是巨大的。Struts 2是以WebWork為核心,采用攔截器的機(jī)制來處理用戶的請(qǐng)求,這樣的設(shè)計(jì)使得業(yè)務(wù)邏輯控制器能夠與Selvet API完全脫離開,所以Struts 2可以理解為是WebWork的更新產(chǎn)品。
Struts 2的工作原理可以用下面這張圖來描述:
Struts 2的工作細(xì)節(jié)可以用下面這張圖來描述:
?
轉(zhuǎn)載于:https://www.cnblogs.com/studyLog-share/p/5467056.html
總結(jié)
以上是生活随笔為你收集整理的Struts 2(一):初识Struts的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯入门 (二)
- 下一篇: 我国002航母海试?