- 相關(guān)推薦
學(xué)習(xí)java技巧
為了進(jìn)入自己心儀的java行業(yè),許多人都會(huì)選擇參加java培訓(xùn),但是這也不意味著每個(gè)人都能學(xué)好java,就像在上學(xué)的時(shí)候,同樣的課堂中總會(huì)出現(xiàn)尖子生和差生的區(qū)別。蘇州java培訓(xùn)學(xué)校的老師介紹,學(xué)習(xí)的差異主要源于學(xué)習(xí)方法不同,學(xué)法不恰當(dāng)就會(huì)影響學(xué)習(xí)效果。針對(duì)這個(gè)問題,小編為大家介紹了幾個(gè)學(xué)習(xí)java的技巧,可以對(duì)java培訓(xùn)有利。
學(xué)習(xí)java技巧1
1、重視基礎(chǔ)學(xué)習(xí)
在參加蘇州java培訓(xùn)學(xué)校的過程中,大家一定要注意學(xué)習(xí)java打牢基礎(chǔ)很關(guān)鍵。俗話說“勿在浮沙筑高臺(tái)”,打不好基礎(chǔ)怎么能建起知識(shí)的高樓呢?更別提進(jìn)一步拓展了。所以在前期的基礎(chǔ)教學(xué)過程中,大家要腳踏實(shí)地,尤其是零基礎(chǔ)學(xué)員,不能浮躁,一點(diǎn)點(diǎn)掌握并做好知識(shí)鞏固很重要。
2、做好日常積累
參加java培訓(xùn)班,學(xué)得好的同學(xué)通常都是比較細(xì)致、注意小節(jié)的。除了在上課期間認(rèn)真學(xué)習(xí)聽課,在休息時(shí)間,他們也會(huì)抓住短暫的時(shí)間來鞏固所學(xué)的知識(shí)點(diǎn),看看書,并做一些練習(xí)題,在這樣一點(diǎn)一滴日常的積累中往往能得到意外的收獲。正所謂“不積跬步,無以至千里;不積小流,無以成江海”說的就是這個(gè)道理。學(xué)習(xí)的差異不是體現(xiàn)在課堂上,而是在課堂下,高手就是這樣慢慢練出來的.。
3、保持謙遜態(tài)度
參加java培訓(xùn)的學(xué)員,有些是有一定java基礎(chǔ)的,起初比零基礎(chǔ)學(xué)員懂得多一些,培訓(xùn)期間就容易變得自大,但常言道“聞道有先后,術(shù)業(yè)有專攻”,不能因此而沾沾自喜,目中無人。一旦踏入社會(huì),就會(huì)發(fā)現(xiàn)java技術(shù)牛人比比皆是,只有謙虛謹(jǐn)慎,踏實(shí)學(xué)習(xí),掌握技術(shù)才最重要。
以上是學(xué)習(xí)java技術(shù)比較重要的三個(gè)方面,這些學(xué)習(xí)的方法和技巧也是蘇州java培訓(xùn)學(xué)校的老師多番強(qiáng)調(diào)的,但是很多人都沒有當(dāng)回事。小編提醒大家,這些看似細(xì)節(jié)的方面往往就是決定成敗的關(guān)鍵。
學(xué)習(xí)java技巧2
1.Static
靜態(tài)屬性在java日常開發(fā)中也是經(jīng)常使用,需要了解和 static關(guān)鍵字相關(guān)的用法,還有和其他關(guān)鍵字的配合使用, 如是否可以和 abstract,final 等關(guān)鍵字聯(lián)合使用。
主要需要掌握的有:
靜態(tài)屬性的定義,使用,以及類加載時(shí)如何初始化
靜態(tài)方法的定義和使用
靜態(tài)類的定義和使用
靜態(tài)代碼塊的定義和初始化時(shí)機(jī)
基礎(chǔ)知識(shí)點(diǎn)
這里主要羅列一些散落的,沒有系統(tǒng)歸類的一些java知識(shí)點(diǎn)。在日常的開發(fā)中用到也不少。 這塊內(nèi)容其實(shí)還有很多,目前只是暫時(shí)歸納了這幾個(gè)在這里,包括有:
equals , hashcode , string/stringbuffer ,final , finally , finalize
2.集合框架
這個(gè)是一個(gè)需要多加掌握的部分,做java開發(fā),可以說沒有不用到集合框架的,這很重要。但是這里的知識(shí)點(diǎn)并不難,但是對(duì)于集合最好要了解內(nèi)部的實(shí)現(xiàn)方式,因?yàn)檫@樣有助于你在各個(gè)不同的場(chǎng)景選擇適合的框架來解決問題,比如有1W個(gè)元素的集合,經(jīng)常要進(jìn)行contains判斷操作,知道了集合的特性或者內(nèi)部實(shí)現(xiàn),就很容易做出正確的選擇。
這里包括了如下內(nèi)容(并發(fā)相關(guān)不包含在內(nèi)):
集合框架的體系: 基礎(chǔ)Collection ,Map
具體集合實(shí)現(xiàn)的內(nèi)容, List ,Set ,Map 具體的實(shí)現(xiàn),內(nèi)部結(jié)構(gòu), 特殊的方法, 適用場(chǎng)景等
集合相關(guān)的工具類 Collections 等的用法
3.異?蚣
異常在java的開發(fā)中可能沒有那么被重視。一般遇到異常,直接上拋,或者隨便catch一下處理之后對(duì)于程序整體運(yùn)行也沒有什么大的影響。不過在企業(yè)級(jí)設(shè)計(jì)開發(fā)中, 異常的設(shè)計(jì)與處理的好壞,往往就關(guān)系著這個(gè)系統(tǒng)整體的健壯性。一個(gè)好的系統(tǒng)的異常對(duì)于開發(fā)者來說,處理應(yīng)該統(tǒng)一,避免各處散落很多異常處理邏輯;對(duì)于系統(tǒng)來說,異常應(yīng)該是可控的,并且是易于運(yùn)維的,某些異常出現(xiàn)后,應(yīng)該有應(yīng)對(duì)的.方法,知道如何運(yùn)維處理,所以雖然異?蚣芎芎(jiǎn)單,但是對(duì)于整個(gè)企業(yè)級(jí)應(yīng)用開發(fā)來說,異常處理是很重要的,處理好異常就需要了解Java中的異常體系。
這部分需要掌握的知識(shí)點(diǎn)不多,主要就是:
異常的體系:
Throwable
Exception
RuntimeException
Error
RuntimeException 和 一般 Exception 的區(qū)別, 具體處理方法等
4.Java IO
IO 在java中不僅僅是文件讀寫那么簡(jiǎn)單,也包括了 socket 網(wǎng)絡(luò)的讀寫等等一切的輸入輸出操作。比如說 標(biāo)準(zhǔn)HTTP請(qǐng)求中Post的內(nèi)容的讀取也是一個(gè)輸出的過程,等等…
對(duì)于IO,Java不僅提供了基本Input、Output相關(guān)的api,也提供了一些簡(jiǎn)化操作的Reader、Writer等api,在某些開發(fā)(涉及大量IO操作的項(xiàng)目)中也很重要,一般日常的開發(fā)中也會(huì)涉及(日志,臨時(shí)文件的讀寫等)。
在這中的知識(shí)點(diǎn)主要有:
基本IO的體系: 包括有InputStream , OutputStream, Reader/Writer, 文件讀取,各種流讀取等
NIO 的概念, 具體使用方式和使用場(chǎng)景
5.多線程并發(fā)
多線程是Java中普遍認(rèn)為比較難的一塊。多線程用好了可以有效提高cpu使用率, 提升整體系統(tǒng)效率, 特別是在有大量IO操作阻塞的情況下;但是它也是一柄雙刃劍, 如果用不好,系統(tǒng)非但提升不大,或者沒有提升,而且還會(huì)帶來多線程之間的調(diào)試時(shí)等問題。
在多線程中內(nèi)容有很多,只是簡(jiǎn)單說明一下Java中初步使用多線程需要掌握的知識(shí)點(diǎn),以后有機(jī)會(huì)單獨(dú)再詳細(xì)介紹一些高級(jí)特性的使用場(chǎng)景。
多線程的實(shí)現(xiàn)和啟動(dòng)
callable 與 runable 區(qū)別
syncrhoized ,reentrantLock 各自特點(diǎn)和比對(duì)
線程池
future 異步方式獲取執(zhí)行結(jié)果
concurrent 包
lock
學(xué)習(xí)java技巧3
一、三大框架簡(jiǎn)介
1、Spring
Spring是一個(gè)解決了許多在J2EE開發(fā)中常見的問題的強(qiáng)大框架。 Spring提供了管理業(yè)務(wù)對(duì)象的一致方法并且鼓勵(lì)了注入對(duì)接口編程而不是對(duì)類編程的良好習(xí)慣。Spring的架構(gòu)基礎(chǔ)是基于使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構(gòu)建完關(guān)注所有架構(gòu)層的完整解決方案方面是獨(dú)一無二的。 Spring提供了唯一的數(shù)據(jù)訪問抽象,包括簡(jiǎn)單和有效率的JDBC框架,極大的改進(jìn)了效率并且減少了可能的錯(cuò)誤。Spring的數(shù)據(jù)訪問架構(gòu)還集成了Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務(wù)管理抽象,它能夠在各種底層事務(wù)管理技術(shù),例如JTA或者JDBC事務(wù)提供一個(gè)一致的編程模型。Spring提供了一個(gè)用標(biāo)準(zhǔn)Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務(wù)管理和其他企業(yè)事務(wù)--如果你需要--還能實(shí)現(xiàn)你自己的aspects。這個(gè)框架足夠強(qiáng)大,使得應(yīng)用程序能夠拋開EJB的復(fù)雜性,同時(shí)享受著和傳統(tǒng)EJB相關(guān)的關(guān)鍵服務(wù)。Spring還提供了可以和IoC容器集成的強(qiáng)大而靈活的MVC Web框架。
2、STRUCTS
Struts是一個(gè)基于Sun J2EE平臺(tái)的MVC框架,主要是采用Servlet和JSP技術(shù)來實(shí)現(xiàn)的。由于Struts能充分滿足應(yīng)用開發(fā)的需求,簡(jiǎn)單易用,敏捷迅速,在過去的一年中頗受關(guān)注。Struts把Servlet、JSP、自定義標(biāo)簽和信息資源(message resources)整合到一個(gè)統(tǒng)一的框架中,開發(fā)人員利用其進(jìn)行開發(fā)時(shí)不用再自己編碼實(shí)現(xiàn)全套MVC模式,極大的節(jié)省了時(shí)間,所以說Struts是一個(gè)非常不錯(cuò)的應(yīng)用框架。
3、Hibernate
Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序?qū)嵱,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。
JAVA三大框架用來做WEB應(yīng)用。
struts主要負(fù)責(zé)表示層的顯示
spring利用它的IOC和AOP來處理控制業(yè)務(wù)(負(fù)責(zé)對(duì)數(shù)據(jù)庫的操作)
hibernate主要是數(shù)據(jù)的持久化到數(shù)據(jù)庫
在用jsp的servlet做網(wǎng)頁開發(fā)的時(shí)候有個(gè)web.xml的映射文件,里面有個(gè)mapping的標(biāo)簽就是用來做文件映射的。
當(dāng)你在瀏覽器上輸入U(xiǎn)RL地址的時(shí)候,文件就會(huì)根據(jù)你寫的名稱對(duì)應(yīng)到一個(gè)java文件,根據(jù)java文件里編寫的內(nèi)容顯示在瀏覽器上,就是一個(gè)網(wǎng)頁,所以網(wǎng)頁名字是隨便寫的,隨便起的名字,不管你起的是.php .jsp .do還是其他的什么都對(duì)應(yīng)這個(gè)java文件,這個(gè)java文件里的代碼進(jìn)行什么操作就干什么,顯示一句話還是連接數(shù)據(jù)庫還是跳轉(zhuǎn)到其他頁面等等,這個(gè)java文件把數(shù)據(jù)進(jìn)行封裝起到安全和便于管理的作用。其實(shí)這個(gè)java文件編譯過來是.class的一個(gè)字節(jié)碼文件,沒有那么一個(gè)類似html嵌入標(biāo)簽和代碼的網(wǎng)頁文件。他與jsp文件區(qū)別就是jsp把代碼嵌入到html標(biāo)簽中。
還有servlet或者struts中html表單的action中的提交名稱對(duì)應(yīng)一個(gè)java文件,struts一般是.do的,都和上面一樣是映射。
Struts是web開發(fā)框架負(fù)責(zé)表單提交)(相當(dāng)于電腦顯卡)
Hibernate負(fù)責(zé)對(duì)數(shù)據(jù)庫的操作(相當(dāng)于電腦CPU)
Spring相當(dāng)于一個(gè)主板(將顯卡和CPU組裝在一起
二、Spring框架
編輯本段定義
要談Spring的歷史,就要先談J2EE。J2EE應(yīng)用程序的廣泛實(shí)現(xiàn)是在1999年和2000年開始的,它的出現(xiàn)帶來了諸如事務(wù)管理之類的核心中間層概念的標(biāo)準(zhǔn)化,但是在實(shí)踐中并沒有獲得絕對(duì)的成功,因?yàn)殚_發(fā)效率,開發(fā)難度和實(shí)際的性能都令人失望。 曾經(jīng)使用過EJB開發(fā)J2EE應(yīng)用的人,一定知道,在EJB開始的學(xué)習(xí)和應(yīng)用非常的艱苦,很多東西都不能一下子就很容易的理解。EJB要嚴(yán)格地繼承各種不同類型的接口,類似的或者重復(fù)的代碼大量存在。而配置也是復(fù)雜和單調(diào),同樣使用JNDI進(jìn)行對(duì)象查找的代碼也是單調(diào)而枯燥。雖然有一些開發(fā)工作隨著xdoclet的出現(xiàn),而有所緩解,但是學(xué)習(xí)EJB的高昂代價(jià),和極低的開發(fā)效率,極高的資源消耗,都造成了EJB的使用困難。而Spring出現(xiàn)的初衷就是為了解決類似的這些問題。 Spring的一個(gè)最大的目的就是使J2EE開發(fā)更加容易。同時(shí),Spring之所以與Struts、Hibernate等單層框架不同,是因?yàn)镾pring致力于提供一個(gè)以統(tǒng)一的、高效的方式構(gòu)造整個(gè)應(yīng)用,并且可以將單層框架以最佳的組合揉和在一起建立一個(gè)連貫的體系?梢哉fSpring是一個(gè)提供了更完善開發(fā)環(huán)境的一個(gè)框架,可以為POJO(Plain Old Java Object)對(duì)象提供企業(yè)級(jí)的服務(wù)。 Spring的形成,最初來自Rod Jahnson所著的一本很有影響力的書籍《Expert One-on-One J2EE Design and Development》,就是在這本書中第一次出現(xiàn)了Spring的一些核心思想,該書出版于2002年。另外一本書《Expert One-on-One J2EE Development without EJB》,更進(jìn)一步闡述了在不使用EJB開發(fā)J2EE企業(yè)級(jí)應(yīng)用的一些設(shè)計(jì)思想和具體的做法。有時(shí)間了可以詳細(xì)的研讀一下。 Spring的初衷: 1、J2EE開始應(yīng)該更加簡(jiǎn)單。 2、使用接口而不是使用類,是更好的編程習(xí)慣。Spring將使用接口的復(fù)雜度幾乎降低到了零。 3、為JavaBean提供了一個(gè)更好的應(yīng)用配置框架。 4、更多地強(qiáng)調(diào)面向?qū)ο蟮脑O(shè)計(jì),而不是現(xiàn)行的技術(shù)如J2EE。 5、盡量減少不必要的異常捕捉。 6、使應(yīng)用程序更加容易測(cè)試。 Spring的目標(biāo): 1、可以令人方便愉快的使用Spring。 2、應(yīng)用程序代碼并不依賴于Spring APIs。 3、Spring不和現(xiàn)有的解決方案競(jìng)爭(zhēng),而是致力于將它們?nèi)诤显谝黄稹?Spring的基本組成: 1、最完善的輕量級(jí)核心框架。 2、通用的事務(wù)管理抽象層。 3、JDBC抽象層。 4、集成了Toplink, Hibernate, JDO, and iBATIS SQL Maps。 5、AOP功能。 6、靈活的MVC Web應(yīng)用框架。
編輯本段Spring框架簡(jiǎn)介
Spring: Spring是一個(gè)開源框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。 簡(jiǎn)單來說,Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。 輕量——從大小與開銷兩方面而言Spring都是輕量的。
完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類。 控制反轉(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過被動(dòng)的方式傳遞進(jìn)來,而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoC與JNDI相反——不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。 面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。 容器——Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。 框架——Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring
也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。 所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。
編輯本段Spring框架的`7個(gè)模塊
1、核心容器 2、Spring 上下文 3、Spring AOP 4、Spring DAO 5、Spring ORM 6、Spring Web 模塊 7、Spring MVC 框架
三、struts
struts是開源軟件。使用Struts的目的是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模型來開發(fā)Web應(yīng)用的時(shí)間。如果我們想混合使用Servlets和JSP的優(yōu)點(diǎn)來建立可擴(kuò)展的應(yīng)用,struts是一個(gè)不錯(cuò)的選擇。
目錄
Struts 1.x的起源
流程
框架結(jié)構(gòu)圖綜述
Model部分
View部分
Controller組件
框架壓縮包內(nèi)容
體系結(jié)構(gòu)
框架中的組件
Struts配置文件
ActionServlet類
ActionMapping類
Action類
ActionForm類
ActionForward類
錯(cuò)誤處理
OGNL
Struts2Struts 1.x的起源
流程
框架結(jié)構(gòu)圖 綜述
Model部分
View部分
Controller組件
框架 壓縮包內(nèi)容
體系結(jié)構(gòu)
框架中的組件
Struts配置文件
ActionServlet類
ActionMapping類
Action類
ActionForm類
ActionForward類
錯(cuò)誤處理
OGNL
Struts2
展開 編輯本段Struts 1.x的起源
Struts最早是作為Apache Jakarta項(xiàng)目的組成部分,項(xiàng)目的創(chuàng)立者希望通過對(duì)該項(xiàng)目的研究,改進(jìn)和提高JavaServer Pages 、Servlet、標(biāo)簽庫以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。Struts這個(gè)名字來源于在建 struts
筑和舊式飛機(jī)中使用的支持金屬架。這個(gè)框架之所以叫"Struts",是為了提醒我們記住那些支撐我們房屋,建筑,橋梁,甚至我們踩高蹺時(shí)候的基礎(chǔ)支撐。這也是一個(gè)解釋Struts在開發(fā)Web應(yīng)用程序中所扮演的角色的精彩描述。當(dāng)建立一個(gè)物理建筑時(shí),建筑工程師使用支柱為建筑的每一層提供支持。同樣,軟件工程師使用Struts為業(yè)務(wù)應(yīng)用的每一層提供支持。它的目的是為了幫助我們減少在運(yùn)用MVC設(shè)計(jì)模型來開發(fā)Web應(yīng)用的時(shí)間。我們?nèi)匀恍枰獙W(xué)習(xí)和應(yīng)用該架構(gòu),不過它將可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的優(yōu)點(diǎn)來建立可擴(kuò)展的應(yīng)用,Struts是一個(gè)不錯(cuò)的選擇。 早期Smalltalk 程序語言便采用了MVC(Model-View -Controller) 模式( Patterns ) 以增加程序代碼彈性,MVC模式將程序代碼整理切割為三部份,Model 部分是業(yè)務(wù)與應(yīng)用領(lǐng)域( Business domain) 相關(guān)邏輯、管理狀態(tài)之對(duì)象,Controller 部分接收來自View 所輸入的資料并與Model 部分互動(dòng), struts
[1]是業(yè)務(wù)流程控制( Flow Control) 之處,View 部分則負(fù)責(zé)展現(xiàn)資料、接收使用者輸入資料。在Java 應(yīng)用中,JFC/Swing、AWT、JSP 皆是可用作View 之技術(shù)規(guī)格,而JavaBean 與Enterprise JavaBean 規(guī)格則可用于Model 程序代碼,一旦應(yīng)用程序以MVC 模式加以適當(dāng)
(的)分割,Model 部分程序代碼可在不同使用者接口外觀(的)應(yīng)用程序中重復(fù)使用。 隨著JSP 與Servlet 技術(shù)大量應(yīng)用于以Web 為基礎(chǔ)(的)應(yīng)用程序,Java 開發(fā)人員群體認(rèn)為應(yīng)以較佳之模式以提升Web 應(yīng)用程序之可維護(hù)性與重復(fù)使用性。早期JSP 規(guī)格書中曾列舉兩種可行之JSP 應(yīng)用架構(gòu),分別為Model1 與Model 2。 在Model 1 架構(gòu)中,JSP 直接處理Web 瀏覽器送來之請(qǐng)求( Request ),并輔以JavaBean 處理應(yīng)用相關(guān)邏輯。Model 1 架構(gòu)單純編寫比較容易,但在Model 1 中JSP 可能同時(shí)肩負(fù)View 與Controller 角色,兩類程
序代碼有可能混雜而不易維護(hù)。而Model 2 中將Servlet 納入架構(gòu)中扮演前端Controller 角色,將Web 瀏覽器送出之請(qǐng)求集中送至Servlet ,Servlet 可集中管理使用者登入、權(quán)限控制、多國(guó)語言轉(zhuǎn)換等前置處理,再視需求轉(zhuǎn)向給對(duì)應(yīng)之JSP 處理。Model 2 中采用了較佳之MVC 模式,但增加了編寫復(fù)雜度。 Struts是Apache軟件基金下Jakarta項(xiàng)目的一部分。除Struts之外,還有其他成功的開源產(chǎn)品,包括Tomcat, Ant 和Velocity。2000 年Craig R. McClanahan 先生貢獻(xiàn)了他編寫 struts
的JSP Model 2 架構(gòu)之Application Framework 原始程序代碼給Apache 基金會(huì),成為Apache Jakarta 計(jì)劃Struts Framework 前身。 開始的代碼基礎(chǔ)從2000年5月開始開發(fā),直到2001年6月,1.0版本發(fā)布。有30 多個(gè)開發(fā)者參與進(jìn)來,并有數(shù)千人參與到討論組中。Struts 代碼基礎(chǔ)由一個(gè)志愿的Commnitter團(tuán)隊(duì)來管理。到2002年,Struts 小組共有9個(gè)志愿Commnitter。 Struts框架的主要架構(gòu)設(shè)計(jì)和開發(fā)者是Craig R.McClanahan。Craig 也是Tomcat 4的主要架構(gòu)師,以及Java Web Services Developer Pack的主要架構(gòu)師和實(shí)現(xiàn)者。他現(xiàn)在是Sun的JavaServer Faces (JSR-127) 以及J2EE平臺(tái)的Web層架構(gòu)的規(guī)范領(lǐng)導(dǎo)。Craig R. McClanahan 先生是JCP ExpertGroup 成員之一,曾參與JSP 規(guī)格制定與Tomcat 4 之編寫,因此Struts Framework 廣受Java 開發(fā)人員群體所重視。Borland 自2002 年底開始于開發(fā)工具JBuilder 中支持Struts Framework。 Struts是Apache 基金會(huì)Jakarta 項(xiàng)目組的一個(gè)Open Source 項(xiàng)目,它采用MVC模式,能夠很好地幫助java 開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣,Struts 也是面向?qū)ο笤O(shè)計(jì),將MVC模式"分離顯示邏輯和業(yè)務(wù)邏輯"的能力發(fā)揮得淋漓盡致。Structs 框架的核心是一個(gè)彈性 struts
的控制層,基于如 Java Servlets,JavaBeans,ResourceBundles與XML等標(biāo)準(zhǔn)技術(shù),以及 Jakarta Commons 的一些類庫。Struts由一組相互協(xié)作的類(組件)、Servlet以及jsp tag lib組成;趕truts構(gòu)架的web應(yīng)用程序基本上符合JSP Model2的設(shè)計(jì)標(biāo)準(zhǔn),可以說是一個(gè)傳統(tǒng) MVC設(shè)計(jì)模式的一種變化類型。 Struts最早是作為Apache Jakarta項(xiàng)目的組成部分問世運(yùn)作。項(xiàng)目的創(chuàng)立者希望通過對(duì)該項(xiàng)目的研究,改進(jìn)和提高Java Server Pages、Servlet、標(biāo)簽庫以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。 Struts跟Tomcat、Turbine等諸多Apache項(xiàng)目一樣,是開源軟件,這是它的一大優(yōu)點(diǎn),使開發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。 除此之外,Struts的優(yōu)點(diǎn)主要集中體現(xiàn)在兩個(gè)方面:Taglib和頁面導(dǎo)航。Taglib是Struts的標(biāo)記庫,靈活運(yùn)用,能大大提高開發(fā)效率。另外,就目前國(guó)內(nèi)的JSP開發(fā)者而言,除了使用JSP自帶的常用標(biāo)記外,很少開發(fā)自己的標(biāo)記,或許Struts是一個(gè)很好的起點(diǎn)。 關(guān)于頁面導(dǎo)航,我認(rèn)為那將是今后的一個(gè)發(fā)展方向,事實(shí)上,這樣做, struts
使系統(tǒng)的脈絡(luò)更加清晰。通過一個(gè)配置文件,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系,這對(duì)于后期的維護(hù)有著莫大的好處。尤其是當(dāng)另一批開發(fā)者接手這個(gè)項(xiàng)目時(shí),這種優(yōu)勢(shì)體現(xiàn)得更加明顯。 MVC即Model-View-Controller的縮寫,是一種常用的設(shè)計(jì)模式。MVC 減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的耦合,以及讓視圖層更富于變化。Struts 是MVC的一種實(shí)現(xiàn),它將 Servlet和 JSP 標(biāo)記(屬于 J2EE 規(guī)范)用作實(shí)現(xiàn)的一部分。Struts繼承了MVC的各項(xiàng)特性,并根據(jù)J2EE的特點(diǎn),做了相應(yīng)的變化與擴(kuò)展。 說明:加粗括號(hào)內(nèi)為修改的內(nèi)容
編輯本段流程
服務(wù)器啟動(dòng)后,根據(jù)web.xml加載ActionServlet讀取struts-config.xml文件內(nèi)容到內(nèi)存。 以登錄為例:第一次進(jìn)login.jsp會(huì)先實(shí)例化Form、把默認(rèn)值(String默認(rèn)為空字符串,整形默認(rèn)為0)賦給表單元素。 輸入用戶名密碼提交表單、提交到action屬性的login.do,通過ActionServlet讀struts-config.xml文件找到 action下的path屬性找到.do,通過name屬性找form-beans中的form-bean的name屬性得到ActionForm的包名類名,先實(shí)例化form,把表單的值填充給form,調(diào)用form的validate方法驗(yàn)證、ActionErrors返回null表示驗(yàn)證通過。
學(xué)習(xí)java技巧4
學(xué)習(xí)JavaSE部分的內(nèi)容,這部分是基礎(chǔ)內(nèi)容。掌握的越扎實(shí),后面的內(nèi)容學(xué)習(xí)起來就越容易。
學(xué)習(xí)SQL和數(shù)據(jù)庫的內(nèi)容,這個(gè)也是非;A(chǔ)的內(nèi)容,舉個(gè)例子:程序員的面試題中一定會(huì)有SQL部分的.考試。
學(xué)習(xí)HTML、css、JavaScript的內(nèi)容。
學(xué)習(xí),JSP、Servlet、JavaBean、標(biāo)記庫、JSTL、MVC、JSPEL等Web編程的部分
學(xué)習(xí)Struts或者SpringMVC。二者取其一即可,推薦選Struts
學(xué)習(xí)Java與XML,重點(diǎn)掌握使用Java技術(shù)對(duì)XML文件的解析
學(xué)習(xí)JavaEE的核心技術(shù),例如:JNDI、EJB3等,同時(shí)還需要學(xué)習(xí)使用與配置應(yīng)用服務(wù)器,例如:webLogicServer,Websphere,JBoss
學(xué)習(xí)Hibernate等持久層的技術(shù)
學(xué)習(xí)Spring
學(xué)習(xí)AJAX
學(xué)習(xí)ANT、Subversion等開發(fā)工具,熟悉常見的軟件開發(fā)模型,例如:rup、XP
學(xué)習(xí)OOA與OOD,uml,設(shè)計(jì)模式
學(xué)習(xí)WebServices、SOA的原理與應(yīng)用開發(fā)
【學(xué)習(xí)java技巧】相關(guān)文章:
古箏學(xué)習(xí)技巧11-05
高爾夫的學(xué)習(xí)技巧02-03
口語學(xué)習(xí)技巧解析04-12
學(xué)習(xí)聲樂的方法技巧04-01
學(xué)習(xí)古琴的小技巧10-16
速錄學(xué)習(xí)技巧分享03-25
速錄學(xué)習(xí)提速技巧10-29