大家好,今天小編來為大家解答以下的問題,關(guān)于struts2校驗(yàn)出現(xiàn)的問題,java錯誤處理這個很多人還不知道,現(xiàn)在讓我們一起來看看吧!
Java新手如何學(xué)習(xí)Spring、Struts、Hibernate三大框架
學(xué)習(xí)Spring、Struts和Hibernate是很多初學(xué)者都會經(jīng)歷的階段,要掌握這三個框架首先要清楚這三個框架都分別解決了哪些問題,同時要知道這三大常見框架的使用場景和框架的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。
下面我將分別跟頭條的朋友探討一下這三個框架的細(xì)節(jié),從它們分別能解決什么問題入手,然后進(jìn)一步分析它們的組成結(jié)構(gòu)。
Java基礎(chǔ)知識準(zhǔn)備要開始學(xué)習(xí)Spring、Struts和Hibernate這三個框架,需要做充足的Java基礎(chǔ)知識學(xué)習(xí),知道這些知識才能知道為什么需要使用這三個框架。下面列出學(xué)習(xí)三大框架之前的基礎(chǔ)知識:
Java面向?qū)ο箝_發(fā)基礎(chǔ)。這部分內(nèi)容包括類、對象、方法、屬性四大概念,以及封裝、繼承、多態(tài)三大特征的使用。要清晰面向?qū)ο蟮拈_發(fā)過程:類的定義、對象的創(chuàng)建、方法的調(diào)用。
Java操作數(shù)據(jù)庫。這部分內(nèi)容包括Java如何與數(shù)據(jù)庫進(jìn)行溝通,如何通過java完成數(shù)據(jù)庫的增刪改查等基本操作。這部分內(nèi)容還包括如何使用預(yù)處理模式提高效率,如何使用CallableStatement完成存儲過程調(diào)用,以及如何使用數(shù)據(jù)庫連接池來優(yōu)化數(shù)據(jù)庫操作。當(dāng)然還要清楚使用DAO模式來規(guī)范化代碼結(jié)構(gòu),而這也為使用Hibernate打下了一定的基礎(chǔ)。
Javaweb開發(fā)基礎(chǔ)。這部分內(nèi)容包括Servlet、JavaBean、JSP的開發(fā)、調(diào)試、部署,清楚web開發(fā)的范圍定義以及web容器的配置管理。要清楚webMVC結(jié)構(gòu),能使用Model2結(jié)構(gòu)進(jìn)行web程序開發(fā),而這為使用Struts和Spring打下了基礎(chǔ)。
(如果這部分知識你還不太了解可以關(guān)注我,我在頭條上不斷更新關(guān)于java開發(fā)的系列文章)為什么要使用Hibernate要清楚為什么使用Hibernate,首先要明白Java操作數(shù)據(jù)庫存在哪些問題,這些問題應(yīng)該怎么解決?為了描述這些問題,首先我們看一下如何使用JDBC完成數(shù)據(jù)庫操作,我們看一個圖示:
這個圖示描述了Java通過JDBC(一個專門操作數(shù)據(jù)庫的JavaAPI)來操作各種數(shù)據(jù)庫的結(jié)構(gòu)圖,圖中Java代碼直接完成對數(shù)據(jù)庫的操作。接下來我們再看一下操作的原理圖,也就是java操作數(shù)據(jù)庫的細(xì)節(jié)描述圖:
通過這張原理圖,我們可以清楚的看到j(luò)ava如何使用JDBC完成與數(shù)據(jù)庫的具體交互過程,使用JDBC操作數(shù)據(jù)是Java的官方標(biāo)準(zhǔn),在經(jīng)過不斷的更新后,目前的JDBC性能已經(jīng)得到了顯著的提高。
在具體開發(fā)數(shù)據(jù)庫操作的時候,我們通常會采用DAO模式,使用DAO的目的是模塊化數(shù)據(jù)庫操作,方便團(tuán)隊之間的協(xié)同化開發(fā),為了描述DAO,我們看一張圖示:
通過圖示我們能發(fā)現(xiàn),DAO位于業(yè)務(wù)層和數(shù)據(jù)庫的中間,可以說它完成了一個映射的任務(wù)。這個映射就是從面向?qū)ο蟮腏ava代碼向面向關(guān)系的數(shù)據(jù)提供了一個映射,再簡單點(diǎn)說就是:DAO可以讓Java程序員以面向?qū)ο蟮姆绞讲僮髅嫦蜿P(guān)系的數(shù)據(jù)庫。
Hibernate的作用與DAO的作用是一樣的,就是完成這個映射層的創(chuàng)建,可以說Hibernate是DAO的一個通用的實(shí)現(xiàn)。通過Hibernate程序員可以很方便的為程序創(chuàng)建與不同數(shù)據(jù)庫產(chǎn)品之間的映射,從而讓程序員從開發(fā)DAO實(shí)現(xiàn)的細(xì)節(jié)工作中解放出來,這就是為什么要使用Hibernate的原因。
學(xué)習(xí)Hibernate并不復(fù)雜,如果你已經(jīng)有過編寫DAO實(shí)驗(yàn)的經(jīng)驗(yàn),那么使用Hibernate能讓你十分愉快,因?yàn)槟阍僖膊挥镁帉懧闊┑摹胺獍焙汀安鸢贝a了。
為什么要使用Struts和Spring為什么把Struts和Spring放在一起呢,因?yàn)樗鼈z關(guān)系密切(其實(shí)Spring完全可以獨(dú)立一站式解決問題),放在一起解釋更加清晰。
在學(xué)習(xí)javaweb開發(fā)的時候,會學(xué)習(xí)到如何使用基于MVC結(jié)構(gòu)的web開發(fā),具體點(diǎn)就是使用Servlet+Javabean+JSP來完成Model2結(jié)構(gòu)的開發(fā),結(jié)構(gòu)圖如下所示:
圖中完成了使用java代碼的方式來編寫MVC結(jié)構(gòu)的程序,MVC的開發(fā)模式是大家公認(rèn)的有效且經(jīng)典的開發(fā)結(jié)構(gòu),目前基本上web開發(fā)的標(biāo)準(zhǔn)配置。
但是在大家自己編寫MVC結(jié)構(gòu)的時候,會比較麻煩(如果這部分內(nèi)容不清楚,關(guān)注我,我會在后續(xù)文章中詳細(xì)闡述如何使用java代碼完成mvc開發(fā)),因?yàn)樗械膶?dǎo)航代碼都需要自己編寫,將來調(diào)整的時候也非常麻煩。Struts就很好的解決了這個問題,程序員可以通過配置來完成程序的調(diào)整,節(jié)省了大量的編碼時間,也讓團(tuán)隊合作開發(fā)變得更容易了。簡單的說Struts就是完成了程序MVC結(jié)構(gòu)的實(shí)現(xiàn)。
那么在上圖中,我們還會發(fā)現(xiàn)一個問題,在web容器中還運(yùn)行著Model組件,而通常Model組件就是JavaBean組件。也就是說web容器既提供了web組件的池功能,又提供了業(yè)務(wù)組件的池功能,這勢必會影響業(yè)務(wù)組件的運(yùn)行性能。為了解決這個問題,出現(xiàn)了兩個陣營:官方標(biāo)準(zhǔn)采用了大名鼎鼎的EJB,解決方案如圖所示:
圖中清晰的呈現(xiàn)了EJBserver,已經(jīng)把業(yè)務(wù)模塊從web容器中剝離出來了。而另一個解決方案就是Spring,它也是池化業(yè)務(wù)模塊,只不過Spring更加輕量級,所以得到了廣大程序員的喜愛。也就是從此,java開發(fā)背上了“較重”的標(biāo)簽。但是EJB目前仍然有它自己的特點(diǎn),雖然重,但是功能也十分強(qiáng)大。
所以簡單的說就是Struts完成了MVC框架的實(shí)現(xiàn),Spring提供了業(yè)務(wù)模塊的輕量級容器。
學(xué)習(xí)步驟其實(shí)寫到這,大家已經(jīng)清楚了學(xué)習(xí)的步驟,因?yàn)槲恼碌拿枋鲞^程就是一個順序的學(xué)習(xí)步驟。
在簡單總結(jié)一下:
學(xué)習(xí)基礎(chǔ)開發(fā)
學(xué)習(xí)數(shù)據(jù)庫開發(fā)
學(xué)習(xí)web開發(fā)
學(xué)習(xí)Hibernate
學(xué)習(xí)Struts
學(xué)習(xí)Spring
整合
建議多做實(shí)驗(yàn),也要經(jīng)常到三大框架的官網(wǎng)多看一看,如果應(yīng)用基礎(chǔ)好的讀者,可以到這幾個框架的官方社區(qū)多看看,社區(qū)里有很多能力很強(qiáng)的開發(fā)者,跟他們交流一定能讓你受益匪淺。
如果大家覺得這篇文章幫助你了解這三大框架,那么請關(guān)注我,跟我一起學(xué)習(xí)java知識,學(xué)習(xí)互聯(lián)網(wǎng)知識。
謝謝!
如何學(xué)習(xí)Struts2
學(xué)習(xí)路線
Struts2開發(fā)環(huán)境搭建
Struts2架構(gòu)
Struts2HelloWorldStruts2
配置文件
Struts2動作
Struts2攔截器
Struts2結(jié)果和結(jié)果類型
Struts2值棧OGNL
Struts2文件上傳
Struts2數(shù)據(jù)庫訪問
Struts2發(fā)送電子郵件
Struts2驗(yàn)證框架
Struts2本地化
Struts2類型轉(zhuǎn)換
Struts2主題和模板
Struts2異常處理
。。。。。。
WebWork框架開始以Struts框架為基礎(chǔ),其目標(biāo)是提供一個加強(qiáng)和改進(jìn)框架Struts來使web開發(fā)的開發(fā)人員更容易。
一段時間后,WebWork框架和Struts社區(qū)聯(lián)手打造的著名的Struts2框架。
Struts2框架的特點(diǎn):http://codingdict.com/article/5216
這里有一些強(qiáng)大的功能,可能會迫使你考慮Struts2:
POJO表單和POJO動作-Struts2的Struts框架已經(jīng)擺脫了動作表單組成部分,Struts2可以使用任何POJO接收的形式輸入。同樣現(xiàn)在可以看到任何POJO作為一個Action類。標(biāo)簽支持-Struts2中,提高了表單標(biāo)簽和新標(biāo)簽允許開發(fā)人員編寫更少的代碼。AJAX支持-Struts2中已確認(rèn)由Web2.0技術(shù)接管,并整合到產(chǎn)品中,通過創(chuàng)建AJAX標(biāo)簽,功能非常相似的標(biāo)準(zhǔn)Struts2標(biāo)簽AJAX支持。易于整合-Struts2集成各種整合與其他框架如Spring,Tiles和SiteMesh是現(xiàn)在更容易。模板支持-支持生成使用模板。插件支持-可以提高核心Struts2的特性,并增強(qiáng)使用插件。大量的插件可供Struts2。性能分析-Struts2的分析,調(diào)試和分析應(yīng)用程序提供了集成。除此之外,Struts還提供了集成的內(nèi)置調(diào)試工具調(diào)試。易于修改標(biāo)簽-Struts2的標(biāo)簽標(biāo)注,可以調(diào)整使用Freemarker的模板。這并不需要JSP或Java知識。基本HTML,XML和CSS知識是足夠修改標(biāo)簽。提倡少配置-Struts2促進(jìn)較少的配置的幫助下,使用默認(rèn)的各種設(shè)置值。不必配置的東西,除非它不符Struts2的默認(rèn)設(shè)置。視圖技術(shù)-Struts2中有一個很大的支持多個視圖選項(JSP,Freemarker,Velocity和XSLT)以上只是Struts2的十大功能,這使得它是企業(yè)公司級應(yīng)用框架。
Struts2的缺點(diǎn):
雖然Struts2的配備了一個偉大的功能列表,但我不會忘記提及關(guān)于Struts2一些缺點(diǎn),將需要大量的改進(jìn)措施:
更大的學(xué)習(xí)曲線-要使用MVC與Struts,你必須是習(xí)慣使用標(biāo)準(zhǔn)的JSP,ServletAPI和大量精心設(shè)計的框架。欠佳的文檔-Struts有標(biāo)準(zhǔn)的servlet和JSPAPI的相比,更少的在線資源,許多用戶第一時間發(fā)現(xiàn)網(wǎng)上Apache文檔混亂和管理不善的組織。較少透明度-Struts應(yīng)用程序中,有很多幕后比正常的基于Java的Web應(yīng)用程序,這使得它很難理解的框架。最后一點(diǎn),一個好的框架應(yīng)該提供通用的特性,許多不同類型的應(yīng)用程序,可以利用它。Struts2是一個最好的網(wǎng)絡(luò)架構(gòu)和高度被用于開發(fā)富Internet應(yīng)用程序(RIA)。
tomcat中struts配置文件無法修改
在Tomcat中,Struts配置文件通常是在部署應(yīng)用程序之前進(jìn)行配置的。一旦應(yīng)用程序部署完成,配置文件通常是不可修改的。如果您需要修改Struts配置文件,您需要重新部署應(yīng)用程序。您可以通過停止Tomcat服務(wù)器,修改配置文件,然后重新啟動服務(wù)器來實(shí)現(xiàn)這一點(diǎn)。請確保在修改配置文件之前備份原始文件,以防止意外情況發(fā)生。
END,本文到此結(jié)束,如果可以幫助到大家,還望關(guān)注本站哦!