- Java EE程序設(shè)計(jì)與開發(fā)實(shí)踐教程
- 馮志林編著
- 438字
- 2021-10-27 17:05:34
6.2 Struts2簡介
6.2.1 什么是Struts2
Struts2是建立在JSP和Servlet之上的一個(gè)Web應(yīng)用開發(fā)框架,是Apache基金會(huì)Jakarta項(xiàng)目的一部分。Struts2是MVC的一種新實(shí)現(xiàn),繼承了MVC的各項(xiàng)特性,并根據(jù)Java EE的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展。
Struts2和Struts1存在很大區(qū)別,Struts1已經(jīng)淘汰不用。
傳統(tǒng)的Java Web開發(fā)采用JSP+Servlet+JavaBean的方式來實(shí)現(xiàn)MVC,但它有一個(gè)缺陷:程序員在編寫程序時(shí)必須繼承HttpServlet類、覆蓋doGet()和doPost()方法,嚴(yán)格遵守Servlet代碼規(guī)范編寫程序。
在Web應(yīng)用中使用Struts2,開發(fā)人員可以把精力集中在真正的業(yè)務(wù)邏輯上,而不再分心于如何分派請(qǐng)求,從而可以大大提高Web應(yīng)用的開發(fā)速度。它是一個(gè)MVC設(shè)計(jì)模式構(gòu)建Web應(yīng)用程序的開源框架,充分體現(xiàn)了MVC設(shè)計(jì)模式的“分類顯示邏輯和業(yè)務(wù)邏輯”能力。
用Struts2實(shí)現(xiàn)的MVC系統(tǒng)與傳統(tǒng)的用Servlet編寫的MVC系統(tǒng)相比,兩者在結(jié)構(gòu)上的區(qū)別如圖6-2所示。

圖6-2 Struts2實(shí)現(xiàn)的MVC系統(tǒng)與Servlet實(shí)現(xiàn)的MVC系統(tǒng)
a) Servlet控制的MVC系統(tǒng) b) Struts 2控制的MVC系統(tǒng)
特別地,Servlet和Action的生命周期有很大區(qū)別。
● Servlet:默認(rèn)在第一次訪問的時(shí)候創(chuàng)建,只創(chuàng)建一次,是一個(gè)單例對(duì)象。
● Action:一樣是訪問的時(shí)候創(chuàng)建對(duì)象,每次訪問Action的時(shí)候都會(huì)創(chuàng)建新的Action對(duì)象,是一個(gè)多實(shí)例對(duì)象。
- Python數(shù)據(jù)分析基礎(chǔ)
- JavaFX Essentials
- 營銷數(shù)據(jù)科學(xué):用R和Python進(jìn)行預(yù)測分析的建模技術(shù)
- CKA/CKAD應(yīng)試教程:從Docker到Kubernetes完全攻略
- Learning Hunk
- C++面向?qū)ο蟪绦蛟O(shè)計(jì)習(xí)題解答與上機(jī)指導(dǎo)(第三版)
- 軟件測試教程
- Hands-On GUI Programming with C++ and Qt5
- 深入實(shí)踐Kotlin元編程
- 從0到1:HTML5 Canvas動(dòng)畫開發(fā)
- Delphi開發(fā)典型模塊大全(修訂版)
- SAP Web Dynpro for ABAP開發(fā)技術(shù)詳解:基礎(chǔ)應(yīng)用
- Ubuntu Server Cookbook
- C++面向?qū)ο蟪绦蛟O(shè)計(jì)
- Python深度學(xué)習(xí)入門:從零構(gòu)建CNN和RNN