




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.1. Struts的運(yùn)行機(jī)制:Web應(yīng)用初始化時(shí),控制器加載分析配置文件(struts-config.xml),獲得ActionMapping,配置應(yīng)用程序1. ActionServlet接收用戶請(qǐng)求2. ActionServlet根據(jù)應(yīng)用程序配置填充ActionForm3. ActionServlet根據(jù)ActionMapping調(diào)用Action的execute方法4. Action調(diào)用業(yè)務(wù)邏輯類(Model),在簡(jiǎn)單的程序中也可以在Action的execute方法中執(zhí)行業(yè)務(wù)處理5. 業(yè)務(wù)邏輯類將處理結(jié)果返回給Action,Action將處理結(jié)果保存在適當(dāng)?shù)淖饔糜蚍秶畠?nèi)(session、
2、request等)6. Action的execute方法向ActionServlet返回ActionForward指明下一步調(diào)用的Action或JSP視圖7. JSP視圖取得保存在作用域之中的業(yè)務(wù)處理結(jié)果并負(fù)責(zé)顯示HTML頁(yè)面大家最好用自己的話來(lái)總結(jié)出來(lái)!2. 常用的集合以及介紹:(應(yīng)重點(diǎn)復(fù)習(xí))常用集合set、map、listset、map是collection接口的子接口set接口的實(shí)現(xiàn)類:HashSet、TreeSetList接口的實(shí)現(xiàn)類:ArrayList、linkedListMap接口的實(shí)現(xiàn)類:HashMap、TreeMap、Hashtable。 ArrayList和linkedLis
3、t的區(qū)別(略)HashMap、HashTable區(qū)別(略)3. 遍歷map的方法:使用Map接口提供的方法entrySet();import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class MapTest public static void main(String args) Map map = new HashMap();map.put(a, 中國(guó));map.put(b, ABC);map.put(c, 1000);/*for(IteratorEntry it = map.entry
4、Set().iterator();it.hasNext();)Entry entry = it.next();System.out.println(entry);System.out.println(entry.getKey();System.out.println(entry.getValue();*/for(Iterator it = map.keySet().iterator();it.hasNext();)Object key = it.next();System.out.println(key);Object value = map.get(key);System.out.print
5、ln(value);4. 字符串相加用“+”和append()的區(qū)別用“+“號(hào)每加一次創(chuàng)建一個(gè)對(duì)象,比如:字符串常量池中有原字符串:”abc”之后要加”de”,加過(guò)之后內(nèi)存中會(huì)有”abc”、”abcde”兩個(gè)字符串!但”abc”會(huì)失去原本指向它的引用變成垃圾回收機(jī)制回收的對(duì)象!Append()只是將字符串追加到原字符串的尾部,始終都是一個(gè)對(duì)象!5. 垃圾回收機(jī)制原理:當(dāng)一個(gè)對(duì)象賦值為null或者沒(méi)有指引指向他的時(shí)候,那么這個(gè)對(duì)象就符合垃圾回收機(jī)制回收的范圍,java虛擬機(jī)會(huì)不定時(shí)的對(duì)垃圾進(jìn)行回收,回收對(duì)象之前會(huì)調(diào)用被回收對(duì)象的finalize()方法!注意Java虛擬機(jī)何時(shí)來(lái)回收垃圾不確定!6
6、. 如何實(shí)現(xiàn)多線程:繼承Thread類或者實(shí)現(xiàn)Runnable接口那種好處多:因?yàn)閖ava是單繼承所以一般會(huì)采用實(shí)現(xiàn)Runnable接口兩種實(shí)現(xiàn)方式的區(qū)別:繼承Thread類可以創(chuàng)建本類對(duì)象直接調(diào)用start()方法運(yùn)行線程(也就是說(shuō)本類對(duì)象就是一個(gè)線程 個(gè)人理解)實(shí)現(xiàn)Runnable接口必須用Thread thread = new Thread()來(lái)獲得一個(gè)線程!7. 代碼的重構(gòu):代碼的輸入、輸出不變,只是改變中間實(shí)現(xiàn)代碼!8. MVC思想 是model、view、controller的縮寫,model代表業(yè)務(wù)邏輯(通過(guò)javabean、EJB組建實(shí)現(xiàn))、view是應(yīng)用表示面(由jsp頁(yè)面產(chǎn)
7、生)、controller是提供應(yīng)用處理過(guò)程的控制(一般是一個(gè)servlet)。通過(guò)這種設(shè)計(jì)模式把應(yīng)用邏輯、處理過(guò)程、顯示邏輯分成不同的組件實(shí)現(xiàn),可提高組件的交互和重用性。9. struts1和struts2的區(qū)別(見最后一頁(yè))10: 講解一下Spring11: hibernate是怎么工作的原理:1. 讀取并解析配置文件2. 讀取并解析映射信息,創(chuàng)建SessionFactory3. 打開Sesssion4. 創(chuàng)建事務(wù)Transation5. 持久化操作6. 提交事務(wù)7. 關(guān)閉Session8. 關(guān)閉SesstionFactory12:hibernate的一級(jí)和二級(jí)緩存是什么 Hibernat
8、e提供了兩級(jí)緩存,第一級(jí)是Session的緩存。由于Session對(duì)象的生命周期通常對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)事務(wù)或者一個(gè)應(yīng)用事務(wù),因此它的緩存是事務(wù)范圍的緩存。第一級(jí)緩存是必需的,Session的緩存是內(nèi)置的,不能被卸載。第二級(jí)緩存是一個(gè)可插拔的的緩存插件,它是由SessionFactory負(fù)責(zé)管理。由于SessionFactory對(duì)象的生命周期和應(yīng)用程序的整個(gè)過(guò)程對(duì)應(yīng),因此第二級(jí)緩存是進(jìn)程范圍的緩存,第二級(jí)緩存是可選的,可以在每個(gè)類或每個(gè)集合的粒度上配置第二級(jí)緩存。當(dāng)Hibernate根據(jù)ID訪問(wèn)數(shù)據(jù)對(duì)象的時(shí)候,首先從Session一級(jí)緩存中查;查不到,如果配置了二級(jí)緩存,那么從二級(jí)緩存中查;查不到,
9、再查詢數(shù)據(jù)庫(kù),把結(jié)果按照ID放入到緩存。13: hibernate的連接池14:怎么接收dwr返回的數(shù)組或集合15:怎么讀取一個(gè)文本文件(流)16:javascript中這么去掉字符串的空格17:用ajax的時(shí)候怎么運(yùn)行后臺(tái)返回的javascript代碼18:存儲(chǔ)過(guò)程是用來(lái)干什么的19:怎么終止一個(gè)線程拋出異常和等待run()方法結(jié)束。20. 悲觀鎖和樂(lè)觀鎖?21. Oracle中實(shí)現(xiàn)序列用什么關(guān)鍵字?Sequence22. 數(shù)據(jù)庫(kù)中有哪些函數(shù)?23. 解析XML的方法?DOM解析和SAX解析DOM:處理大型文件時(shí)其性能下降的非常厲害。這個(gè)問(wèn)題是由DOM的樹結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多
10、,而且DOM必須在解析文件之前把整個(gè)文檔裝入內(nèi)存,適合對(duì)XML的隨機(jī)訪問(wèn)SAX:不現(xiàn)于DOM,SAX是事件驅(qū)動(dòng)型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個(gè)文件。當(dāng)遇到像文件開頭,文檔結(jié)束,或者標(biāo)簽開頭與標(biāo)簽結(jié)束時(shí),它會(huì)觸發(fā)一個(gè)事件,用戶通過(guò)在其回調(diào)事件中寫入處理代碼來(lái)處理XML文件,適合對(duì)XML的順序訪問(wèn)24. 用遞歸法求n的階乘?25. Orcale中左右連接用“+”怎樣連接Oracle數(shù)據(jù)庫(kù)左連接“+”在右邊,右連接“+”在左邊。26. Equals方法和=的區(qū)別。equals()方法是用來(lái)比較兩個(gè)字符串值是否相等而=是用來(lái)比較對(duì)象引用是否相等(也就是是否為同一個(gè)對(duì)象)
11、27. 線程池的問(wèn)題。線程池就像數(shù)據(jù)庫(kù)連接池一樣,是一個(gè)對(duì)象池。所有的對(duì)象池都有一個(gè)共同的目的,那就是為了提高對(duì)象的使用率,從而達(dá)到提高程序效率的目的。比如對(duì)于 Servlet,它被設(shè)計(jì)為多線程的(如果它是單線程的,你就可以想象,當(dāng)1000個(gè)人同時(shí)請(qǐng)求一個(gè)網(wǎng)頁(yè)時(shí),在第一個(gè)人獲得請(qǐng)求結(jié)果之前,其它999個(gè)人 都在郁悶地等待),如果為每個(gè)用戶的每一次請(qǐng)求都創(chuàng)建一個(gè)新的線程對(duì)象來(lái)運(yùn)行的話,系統(tǒng)就會(huì)在創(chuàng)建線程和銷毀線程上耗費(fèi)很大的開銷,大大降低系統(tǒng)的效率。 因此,Servlet多線程機(jī)制背后有一個(gè)線程池在支持,線程池在初始化初期就創(chuàng)建了一定數(shù)量的線程對(duì)象,通過(guò)提高對(duì)這些對(duì)象的利用率,避免高頻率地創(chuàng)建
12、對(duì)象,從而達(dá)到提高程序的效率的目的。28. struts1的一些配置問(wèn)題 web.xml 和struts-config.xml中的一些配置。29. JavaScript的一個(gè)操作流程。30. 一些簡(jiǎn)單的sql語(yǔ)句,比如說(shuō) 現(xiàn)在數(shù)據(jù)庫(kù)中有10記錄,要求你寫一個(gè)語(yǔ)句保留第二條和第五條記錄,將其他的記錄全部刪除。31. 存儲(chǔ)過(guò)程、觸發(fā)器32. Throw 和Throws的區(qū)別throw語(yǔ)句用來(lái)明確地拋出一個(gè)“異常”。throws用來(lái)標(biāo)明一個(gè)成員函數(shù)可能拋出的各種“異常”33. 在異常捕獲時(shí) try ,catch,finally 中可不可以沒(méi)有catch語(yǔ)句塊。可以,但try塊不能單獨(dú)執(zhí)行,后面必須跟
13、catch或者finally、或者兩者都有。34. 面向?qū)ο笥心男┨卣鳎闳绾卫斫猓砍橄蟆⒗^承、封裝、多態(tài)35. 什么是多線程?線程的狀態(tài)有那幾個(gè)?創(chuàng)建線程的方法?啟動(dòng)線程用什么方法?線程同步包括的方法?答:多線程是為了同步完成多項(xiàng)任務(wù),不是為了提高運(yùn)行效率,而是為了提高資源使用效率來(lái)提高系統(tǒng)的效率。線程是在同一時(shí)間需要完成多項(xiàng)任務(wù)的時(shí)候?qū)崿F(xiàn)的。線程狀態(tài)有:就緒、運(yùn)行、掛起、結(jié)束。啟動(dòng)線程用start()方法。線程同步包含的方法:線程睡眠sleep()、線程讓步:yield()、等待其他線程結(jié)束join()等。36. String、stringBuffer、StringBuilder的區(qū)別37
14、. 垃圾回收機(jī)制的原理?final,finally,finalize的區(qū)別?38. 內(nèi)存的泄露以及溢出是怎么回事? 內(nèi)存溢出就是你要求分配的java虛擬機(jī)內(nèi)存超出了系統(tǒng)能給你的,系統(tǒng)不能滿足需求,于是產(chǎn)生溢出。內(nèi)存泄漏是指你向系統(tǒng)申請(qǐng)分配內(nèi)存進(jìn)行使用(new),可是使用完了以后卻不歸還(delete),結(jié)果你申請(qǐng)到的那塊內(nèi)存你自己也不能再訪問(wèn),該塊已分配出來(lái)的內(nèi)存也無(wú)法再使用,隨著服務(wù)器內(nèi)存的不斷消耗,而無(wú)法使用的內(nèi)存越來(lái)越多,系統(tǒng)也不能再次將它分配給需要的程序,產(chǎn)生泄露。一直下去,程序也逐漸無(wú)內(nèi)存使用,就會(huì)溢出。39. 數(shù)據(jù)庫(kù)連接池的原理?數(shù)據(jù)庫(kù)連接池的基本思想就是為數(shù)據(jù)庫(kù)連接建立一個(gè)“緩沖
15、池”。預(yù)先在緩沖池中放入一定數(shù)量的連接,當(dāng)需要建立數(shù)據(jù)庫(kù)連接時(shí),只需從“緩沖池”中取出一個(gè),使用完畢之后再放回去。我們可以通過(guò)設(shè)定連接池最大連接數(shù)來(lái)防止系統(tǒng)無(wú)盡的與數(shù)據(jù)庫(kù)連接。更為重要的是我們可以通過(guò)連接池的管理機(jī)制監(jiān)視數(shù)據(jù)庫(kù)的連接的數(shù)量使用情況,為系統(tǒng)開發(fā)測(cè)試及性能調(diào)整提供依據(jù)。40. 數(shù)組和鏈表的區(qū)別?棧以及隊(duì)列的特點(diǎn)以及區(qū)別?數(shù)組處理一組數(shù)據(jù)類型相同的數(shù)據(jù),但不允許動(dòng)態(tài)定義數(shù)組的大小,即在使用數(shù)組之前必須確定數(shù)組的大小。而在實(shí)際應(yīng)用中,用戶使用數(shù)組之前有時(shí)無(wú)法準(zhǔn)確確定數(shù)組的大小,只能將數(shù)組定義成足夠大小,這樣數(shù)組中有些空間可能不被使用,從而造成內(nèi)存空間的浪費(fèi)。 鏈表是一種常見的數(shù)據(jù)組織形
16、式,它采用動(dòng)態(tài)分配內(nèi)存的形式實(shí)現(xiàn)。需要時(shí)可以用new分配內(nèi)存空間,不需要時(shí)用delete將已分配的空間釋放,不會(huì)造成內(nèi)存空間的浪費(fèi)。數(shù)組中的數(shù)據(jù)在內(nèi)存中的按順序存儲(chǔ)的,而鏈表是隨機(jī)存儲(chǔ)的!要訪問(wèn)數(shù)組中的元素可以按下標(biāo)索引來(lái)訪問(wèn),速度比較快,如果對(duì)他進(jìn)行插入操作的話,就得移動(dòng)很多元素,所以對(duì)數(shù)組進(jìn)行插入操作效率很低!由于連表是隨機(jī)存儲(chǔ)的,鏈表在插入,刪除操作上有很高的效率(相對(duì)數(shù)組),如果要訪問(wèn)鏈表中的某個(gè)元素的話,那就得從鏈表的頭逐個(gè)遍歷,直到找到所需要的元素為止,所以鏈表的隨機(jī)訪問(wèn)的效率就比數(shù)組要低41. 遞歸的算法?比如階乘和fif數(shù)列的實(shí)現(xiàn) 。常用的一些算法,如冒泡,二分查找,折半查找,
17、選擇排序等等42. java中多態(tài)是如何實(shí)現(xiàn)的?重載和覆蓋的區(qū)別?注意代碼的重構(gòu)不是重載!43. 接口和抽象類的區(qū)別?44. jsp和servlet的區(qū)別?jsp的內(nèi)置對(duì)象?jsp的標(biāo)準(zhǔn)動(dòng)作?jsp的頁(yè)面元素有哪些?四種會(huì)話跟蹤技術(shù)是什么?servlet是不是線程安全的?servlet生命周期?動(dòng)態(tài)include和靜態(tài)include區(qū)別?重定向和請(qǐng)求轉(zhuǎn)發(fā)的區(qū)別?servlet中如何從頁(yè)面獲取參數(shù)?jsp的四種作用于范圍是什么?Jsp是Servlet的技術(shù)擴(kuò)展,本質(zhì)上是Servlet的簡(jiǎn)易方式,Jsp側(cè)重于視圖而Servlet側(cè)重于控制業(yè)務(wù)邏輯。Jsp內(nèi)置對(duì)象九個(gè):request、respons
18、e、out、session、application、pagecantext、page、config、Exception會(huì)話跟蹤技術(shù):session、cookie、重寫url、隱藏表單域Jsp標(biāo)準(zhǔn)動(dòng)作:usebean、setProperty、getProperty、forward、include不是,servlet處于服務(wù)器進(jìn)程中,它通過(guò)多線程方式運(yùn)行其service方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請(qǐng)求,并且其實(shí)例一般不會(huì)銷毀,所以你的項(xiàng)目中如果只有一個(gè)servlet,那么web容器就只會(huì)創(chuàng)建一個(gè)實(shí)例通過(guò)request.getParameter()來(lái)獲取頁(yè)面參數(shù)作用域范圍由小到大:page、requ
19、est、session、application47. jstl的包括哪些標(biāo)簽庫(kù)?如何實(shí)現(xiàn)迭代?包括:核心標(biāo)簽(包括通用標(biāo)簽、條件標(biāo)簽、迭代標(biāo)簽)、I18N與國(guó)際化標(biāo)簽、SQL標(biāo)簽、XML標(biāo)簽、function標(biāo)簽使用迭代標(biāo)簽forEach來(lái)遍歷48. 過(guò)濾器的原理?過(guò)濾器的生命周期?監(jiān)聽器的原理49. hibernate的映射原理?hibernate的查詢方式有哪些?關(guān)聯(lián)關(guān)系的映射怎么理解?三種查詢方式:HQL、條件查詢、原生SQL查詢,命名SQL、50. oracle和sqlserver區(qū)別?如何優(yōu)化oracle數(shù)據(jù)庫(kù)?oracle的一些常用系統(tǒng)函數(shù)?Oracle跨平臺(tái),Sql Server
20、只能運(yùn)行在window平臺(tái)上。51. 為什么要用索引?索引的分類?視圖是什么?答:提高查詢的執(zhí)行速度,強(qiáng)制實(shí)施數(shù)據(jù)庫(kù)的唯一性,提高表與表之間的鏈接速度。聚集索引和非聚集索引(SQL Server) 標(biāo)準(zhǔn)索引、組合索引、唯一索引、反向索引、位圖索引(Oracle)視圖是一張?zhí)摂M表,該表提供對(duì)一個(gè)或多個(gè)表中列的訪問(wèn),它是從一個(gè)或多個(gè)表中派生出來(lái)的對(duì)象。52. 存儲(chǔ)過(guò)程你是怎么理解的?如何實(shí)現(xiàn)?答:我感覺(jué)存儲(chǔ)過(guò)程就像java中的方法一樣,輸入?yún)?shù)就是方法傳的參數(shù),而輸出參數(shù)就像方法的返回值一樣。Java中通過(guò)CallAbleStatement接口實(shí)現(xiàn)了對(duì)存儲(chǔ)過(guò)程的調(diào)用。53. 觸發(fā)器、游標(biāo)的一些基本
21、知識(shí)!54. oracle數(shù)據(jù)庫(kù)的一些特殊之處如簇、序列等如何理解簇是用來(lái)存儲(chǔ)表的方法,這些表互相聯(lián)系密切并通常相連在磁盤的相同區(qū)域上,共享同一列的一組表,用于檢索時(shí)提高效率oracle中沒(méi)有sql server中的標(biāo)識(shí)列,只能通過(guò)創(chuàng)建序列來(lái)實(shí)現(xiàn)這一功能。55. 權(quán)限的問(wèn)題如何解決?56. Ajax的javaScript代碼如何實(shí)現(xiàn)?Ajax的一些框架?57. 單例模式和工廠模式如何實(shí)現(xiàn)?單列模式:(餓漢式)public class Carprivate Car()/私有的構(gòu)造方法使別的類不能通過(guò)new來(lái)創(chuàng)建本類是類只能通過(guò)我們下面的方法來(lái)獲得對(duì)象private static Car baom
22、a = new Car();/靜態(tài)類類型的變量保證對(duì)象只有一個(gè)public static Car getCar()/注意方法定義為靜態(tài)的再別的類中就可以用本類類名來(lái)調(diào)用此方法得到本類對(duì)象return baoma;單列模式使本類對(duì)象只有一個(gè),只能通過(guò)方法調(diào)用來(lái)獲得對(duì)象,而且無(wú)論你掉用多少次方法,得到的都是一個(gè)實(shí)例。58. 類的加載順序 父類靜態(tài)塊-子類的靜態(tài)塊-程序的入口(main)-父類的初始化塊-父類的構(gòu)造方法-子類的初始化塊-子類的構(gòu)造方法59. 如何處理數(shù)據(jù)庫(kù)差異比如用戶剛開始使要求用Sql Server之后需求改變要使用Oracle:a) 使用hibernate只需要改變方言即可b)
23、使用sql標(biāo)準(zhǔn)語(yǔ)句60. Session和cookie的區(qū)別61. 一個(gè)抽象類是否可以繼承一個(gè)普通類可以,但被繼承的類必須要有明確的構(gòu)造方法62. 什么時(shí)候用接口?抽象類?當(dāng)你寫一個(gè)類時(shí),可能面臨部分代碼可能會(huì)發(fā)生變化 你可以把這些代碼封裝成(接口或抽象類或基礎(chǔ)類中的)一個(gè)或多個(gè)方法 1、如果所有抽象出的方法不確定性很高,就定義為接口來(lái)封裝,所有方法抽象,由實(shí)現(xiàn)類全部實(shí)現(xiàn) 2、如果部分抽象出的方法不確定性很高,就定義為抽象類來(lái)封裝,能確定的方法實(shí)現(xiàn),不確定的方法抽象,由實(shí)現(xiàn)類部分實(shí)現(xiàn),部分重寫(不變就不重寫啦) 3、如果所有抽象出的方法確定性很高,就定義為基礎(chǔ)類,所有方法提供基本實(shí)現(xiàn),由子類去
24、重寫(不變就不用寫子類啦)63. 函數(shù)和存儲(chǔ)過(guò)程的區(qū)別 1. 一般來(lái)說(shuō),存儲(chǔ)過(guò)程實(shí)現(xiàn)的功能要復(fù)雜一點(diǎn),而函數(shù)的實(shí)現(xiàn)的功能針對(duì)性比較強(qiáng)。2. 對(duì)于存儲(chǔ)過(guò)程來(lái)說(shuō)可以返回參數(shù),而函數(shù)只能返回值或者表對(duì)象。3. 存儲(chǔ)過(guò)程一般是作為一個(gè)獨(dú)立的部分來(lái)執(zhí)行,而函數(shù)可以作為查詢語(yǔ)句的一個(gè)部分來(lái)調(diào)用,由于函數(shù)可以返回一個(gè)表對(duì)象,因此它可以在查詢語(yǔ)句中位于FROM關(guān)鍵字的后面。4. 當(dāng)存儲(chǔ)過(guò)程和函數(shù)被執(zhí)行的時(shí)候,SQL Manager會(huì)到procedure cache中去取相應(yīng)的查詢語(yǔ)句,如果在procedure cache里沒(méi)有相應(yīng)的查詢語(yǔ)句,SQL Manager就會(huì)對(duì)存儲(chǔ)過(guò)程和函數(shù)進(jìn)行編譯。 Procedu
25、re cache中保存的是執(zhí)行計(jì)劃 (execution plan) ,當(dāng)編譯好之后就執(zhí)行procedure cache中的execution plan,之后SQL SERVER會(huì)根據(jù)每個(gè)execution plan的實(shí)際情況來(lái)考慮是否要在cache中保存這個(gè)plan,評(píng)判的標(biāo)準(zhǔn)一個(gè)是這個(gè)execution plan可能被使用的頻率;其次是生成這個(gè)plan的代價(jià),也就是編譯的耗時(shí)。保存在cache中的plan在下次執(zhí)行時(shí)就不用再編譯了。Struts1和struts2比較:Action類Struts 1要求Action類要擴(kuò)展自一個(gè)抽象基類。Struts 1的一個(gè)共有的問(wèn)題是面向抽象類編程而不是
26、面向接口編程。Struts 2的Action類實(shí)現(xiàn)了一個(gè)Action接口,連同其他接口一起實(shí)現(xiàn)可選擇和自定義的服務(wù)。Struts 2提供一個(gè)名叫ActionSupport的基類實(shí)現(xiàn)一般使用的接口。雖然,Action接口不是必須的。任何使用execute方法的POJO對(duì)象可以被當(dāng)作Struts 2的Action對(duì)象使用。 程模型Struts 1 Action類是單例類,因只有一個(gè)示例控制所有的請(qǐng)求。單例類策略造成了一定的限制且給開發(fā)帶來(lái)了額外的煩惱。Action資源必須是程安全或者同步的。Struts 2 Action對(duì)象每一個(gè)請(qǐng)求都實(shí)例化對(duì)象,所以沒(méi)有程安全的問(wèn)題。(實(shí)踐中,servlet容器
27、生許多丟的對(duì)象對(duì)于每一個(gè)請(qǐng)求,多于一個(gè)的對(duì)象并不影響垃圾收集)Servlet 依賴 Struts 1的Action類依賴于servlet API以HttpServletRequest和HttpServletResponse作參數(shù)傳給execute方法當(dāng)Action被調(diào)用時(shí)。Struts 2的Action不和容器有關(guān)。Servlet上下文被表現(xiàn)簡(jiǎn)單的Maps,允許Action被獨(dú)立的測(cè)試。Struts 2的Action可以訪問(wèn)最初的請(qǐng)求和相應(yīng),如果需要的話。然而,其他的架構(gòu)元素少或者排除直接訪問(wèn)HttpServletRequest或者HttpServletResponse的需要。易測(cè)性 測(cè)試Struts 1的主要障礙是execute方法暴露了Servlet API。第三方的擴(kuò)展,Struts測(cè)試用例,提供Struts 1的集合對(duì)象。Struts 2的Action可以通過(guò)實(shí)例化Action測(cè)試,設(shè)置屬性,然后調(diào)用方法。依賴注入的支持也是測(cè)試變得更簡(jiǎn)單。接受輸入Struts 1使用ActionForm對(duì)象捕獲輸入。象Action一樣,所有的ActionForm必須擴(kuò)展基
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院職業(yè)病防控培訓(xùn)體系
- 《優(yōu)化整體市場(chǎng)戰(zhàn)略》課件
- 《家庭教育指導(dǎo)》課件
- 轉(zhuǎn)讓露營(yíng)設(shè)備合同協(xié)議
- 有獎(jiǎng)舉報(bào)協(xié)議書
- 消殺委托協(xié)議書
- 浙江小學(xué)三年級(jí)上冊(cè)數(shù)學(xué)應(yīng)用題100道及答案
- 中藥煎藥知識(shí)培訓(xùn)課件
- 滑板合作協(xié)議書
- 辣白菜購(gòu)銷合同協(xié)議
- 個(gè)私協(xié)會(huì)工作總結(jié)
- 哺乳動(dòng)物專題知識(shí)講座
- 城市公共空間設(shè)計(jì)創(chuàng)新
- 簡(jiǎn)易安全管理檢維修作業(yè)風(fēng)險(xiǎn)分析和安全措施課件
- 24年追覓在線測(cè)評(píng)28題及答案
- 2024年雅安市人力資源和社會(huì)保障局公開招聘編外工作人員1人高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 江蘇省徐州市2025屆2023-2024學(xué)年高二下學(xué)期期末抽測(cè)考試+物理試卷(含答案)
- 情侶協(xié)議書電子版簡(jiǎn)單模板
- 廣東省惠州市2025屆高三數(shù)學(xué)第一次調(diào)研考試試題
- 英語(yǔ)話中國(guó)智慧樹知到答案2024年吉林大學(xué)
- 滬教版數(shù)學(xué)三年級(jí)下冊(cè)三位數(shù)乘兩位數(shù)豎式計(jì)算題100道及答案
評(píng)論
0/150
提交評(píng)論