Struts1框架以ActionServlet作為核心控制器,整個(gè)應(yīng)用由客戶端請(qǐng)求驅(qū)動(dòng)。當(dāng)客戶端向Web應(yīng)用發(fā)送請(qǐng)求時(shí),請(qǐng)求將被Struts1的核心控制器ActionServlet攔截,ActionServlet根據(jù)請(qǐng)求決定是否需要調(diào)用業(yè)務(wù)邏輯控制器處理用戶請(qǐng)求(實(shí)際上,業(yè)務(wù)邏輯控制器還是控制器,它只是負(fù)責(zé)調(diào)用模型來處理用戶請(qǐng)求),當(dāng)用戶請(qǐng)求處理完成后,其處理結(jié)果通過JSP呈現(xiàn)給用戶。
對(duì)于整個(gè)Struts1框架而言,控制器就是它的核心,Struts1的控制器由兩個(gè)部分組成:核心控制器和業(yè)務(wù)邏輯控制器。其中核心控制器就是ActionServlet,由Struts1框架提供;業(yè)務(wù)邏輯控制就是用戶自定義的Action,由應(yīng)用開發(fā)者提供。
對(duì)于大部分用戶請(qǐng)求而言,都需要得到服務(wù)器的處理。當(dāng)用戶發(fā)送一個(gè)需要得到服務(wù)器處理的請(qǐng)求時(shí),該請(qǐng)求被ActionServlet攔截到,ActionServlet將該請(qǐng)求轉(zhuǎn)發(fā)給對(duì)應(yīng)的業(yè)務(wù)邏輯控制器,業(yè)務(wù)邏輯控制器調(diào)用模型來處理用戶請(qǐng)求;如果用戶請(qǐng)求只是希望得到某個(gè)URL資源,則由ActionServlet將被請(qǐng)求的資源轉(zhuǎn)發(fā)給用戶。
Struts2與Struts1相比,確實(shí)有很多革命性的改進(jìn),但它并不是新發(fā)布的新框架,而是在另一個(gè)赫赫有名的框架:WebWork基礎(chǔ)上發(fā)展起來的。從某種程度上來講,Strut2沒有繼承Struts1的血統(tǒng),而是繼承了WebWork的血統(tǒng)?;蛘哒f,WebWork衍生出了Struts2而不是Struts1衍生了Struts2。因?yàn)镾truts2是WebWork的升級(jí),而不是一個(gè)全新的框架,因此穩(wěn)定性、性能等各方面都有很好的保證;而且吸收了Struts1和WebWork兩者的優(yōu)勢,因此,是一個(gè)非常值得期待的框架。
(4)Spring管理技術(shù) Spring是一個(gè)開源框架,目前在開源社區(qū)的人氣很旺,被認(rèn)為是最有前途的開源框架之一。
她是由RodJohnson創(chuàng)建的,她的誕生是為了簡化企業(yè)級(jí)系統(tǒng)的開發(fā)。說道Spring就不得不說EJB,因?yàn)镾pring在某種意義上是EJB的替代品,她是一種輕量級(jí)的容器。用過EB的人都知道EJB很復(fù)雜,為了一個(gè)簡單的功能你不得不編寫多個(gè)Java文件和部署文件,他是一種重量級(jí)的容器。
(5)Hibernate技術(shù) 在今日的企業(yè)環(huán)境中,把面向?qū)ο蟮能浖完P(guān)系數(shù)據(jù)庫一起使用可能是相當(dāng)麻煩、浪費(fèi)時(shí)間的。Hibernate是一個(gè)面向Java環(huán)境的對(duì)象關(guān)系數(shù)據(jù)庫映射工具。
對(duì)象關(guān)系數(shù)據(jù)庫映射(objectrelationalmapping(ORM這個(gè)術(shù)語表示一種技術(shù),用來把對(duì)象模型表示的對(duì)象映射到基于SQL的關(guān)系模型數(shù)據(jù)結(jié)構(gòu)中去。
Hibernate不僅僅管理Java類到數(shù)據(jù)庫表的映射(包括Java數(shù)據(jù)類型到SQL數(shù)據(jù)類型的映射),還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開發(fā)時(shí)人工使用SQL和JDBC處理數(shù)據(jù)的時(shí)間。
Hibernate的目標(biāo)是對(duì)于開發(fā)者通常的數(shù)據(jù)持久化相關(guān)的編程任務(wù),解放其中的95%。對(duì)于以數(shù)據(jù)為中心的程序來說,它們往往只在數(shù)據(jù)庫中使用存儲(chǔ)過程來實(shí)現(xiàn)商業(yè)邏輯Hibernate可能不是最好的解決方案;對(duì)于那些在基于Java的中間層應(yīng)用中,它們實(shí)現(xiàn)面向?qū)ο蟮臉I(yè)務(wù)模型和商業(yè)邏輯的應(yīng)用,Hibernate是最有用的。不管怎樣,Hibernate一定可以幫助你消除或者包裝那些針對(duì)特定廠商的SQL代碼,并且?guī)湍惆呀Y(jié)果集從表格式的表示形式轉(zhuǎn)換到一系列的對(duì)象去。
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com