J2EE考試題目及答案_第1頁
J2EE考試題目及答案_第2頁
J2EE考試題目及答案_第3頁
J2EE考試題目及答案_第4頁
J2EE考試題目及答案_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、J2EE簡答題1、簡述J2EE的四層模型。運行在客戶端機器上的客戶層組件;運行在J2EE服務(wù)器上的Web層組件;運行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件;運行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)層軟件2、什么是對象持久化?即把數(shù)據(jù)(如內(nèi)存中的對象)保存到可永久保存的存儲設(shè)備中(如磁盤)。持久化的主要應(yīng)用是將內(nèi)存中的數(shù)據(jù)存儲在關(guān)系型的數(shù)據(jù)庫中,當(dāng)然也可以存儲在磁盤文件中、XML數(shù)據(jù)文件中等等。3、簡述一下ORMAPPING,為什么我們使用它?ORM(Object Relational Mapping)是一種為了解決面向?qū)ο笈c關(guān)系型數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù)。簡單說:ORM是通過使用描述對象和數(shù)據(jù)庫

2、之間映射的元數(shù)據(jù),將Java程序中的對象自動持久化到關(guān)系數(shù)據(jù)中。本質(zhì)上就是將數(shù)據(jù)從一種形式轉(zhuǎn)換到另外一種形式。原因:用它來架起對象和關(guān)系型數(shù)據(jù)庫的橋梁,可解決對象層次的映射、對象關(guān)系的映射以及對象的持久化問題。4、 簡述一下如何使用Hibernate實現(xiàn)對象持久化的過程(可畫圖或用偽碼描述) STEP 1:創(chuàng)建Configuration對象。在這一步中主要為了進行配置文件的裝載操作,讀取所有的配置文件并進行解析、STEP 2: 創(chuàng)建SessionFactory對象。通過創(chuàng)建好的Configuration對象可以創(chuàng)建一個sessionFactory對象的實例,同時是生成Session對象實例的工

3、廠,他在整個應(yīng)用中應(yīng)該是,唯一的。STEP 3:創(chuàng)建Session對象。 Session對象類似于數(shù)據(jù)庫的連接對象,可以理解為與數(shù)據(jù)庫建立的一個連接,但是他的功能要比JDBC中的Connection對象豐富很多。STEP 4:開始一個事務(wù)。在Java中定義一個事務(wù)操作的開始,這是使用Hibernate進行持久化操作必不可少的步驟STEP 5:進行持久化操作。在這個步驟中可以讀取或者保存Java對象。STEP 6:結(jié)束事務(wù)。在操作完成之后還要進行顯式的結(jié)束事務(wù)的操作。STEP 7:關(guān)閉Session。類似于釋放數(shù)據(jù)庫的連接。5、為什么要實現(xiàn)序列化?1、序列化以某種存儲形式使自定義對象持久化2、序

4、列化將對象轉(zhuǎn)換為可傳輸方式從一個地方傳遞到另一個地方3、序列化使程序更具維護性6、比較一下sessionFactory中的opensession()和getcurrentsession()方法1、getCurrentSession創(chuàng)建的session會和綁定到當(dāng)前線程,而openSession不會。2 、getCurrentSession創(chuàng)建的線程會在事務(wù)回滾或事物提交后自動關(guān)閉,而openSession必須手動關(guān)閉7、比較一下session中的load()和get()方法,以及如何保證每次都是從數(shù)據(jù)庫讀取而不是在緩存中讀?load()和get()方法均可以根據(jù)指定的實體類和id從數(shù)據(jù)庫讀取記

5、錄,并返回與之對應(yīng)的實體對象。其區(qū)別在于:如果未能發(fā)現(xiàn)符合條件的記錄,get方法返回null,而load方法會拋出一個ObjectNotFoundException。Load方法可返回實體的代理類實例,而get方法永遠(yuǎn)直接返回實體類。load方法可以充分利用內(nèi)部緩存和二級緩存中的現(xiàn)有數(shù)據(jù),而get方法則僅僅在內(nèi)部緩存中進行數(shù)據(jù)查找,如沒有發(fā)現(xiàn)對應(yīng)數(shù)據(jù),將越過二級緩存,直接調(diào)用SQL完成數(shù)據(jù)讀取。8、Action接受用戶參數(shù)輸入,主要有哪幾種方式?我們常用的是哪一種? 1.Action屬性接收參數(shù);2Domain modal(域模型)接收參數(shù);3.Modal driven接收參數(shù)。常用第一種跟第

6、二種9、在struts中實現(xiàn)一個action有哪幾種方式?最常用的是哪種?1定義一個普通的類,類中只要有一個public String execute()方法且返回一個字符串即可。2.定義一個類,實現(xiàn)Action接口,xwork2.Action這個包的3繼承xwork2.ActionSupport這個類。最常用的是第三種10、在struts.xml中Result的type常用的有四種類型1)dispatcher 2)redirect 3)chain 4)redirectAction哪些是服務(wù)器跳轉(zhuǎn)?哪些是客戶端跳轉(zhuǎn)?dispatcher和chain是服務(wù)器端跳轉(zhuǎn),所以客戶端只發(fā)起一次請求red

7、irect和redirectAction是客戶端跳轉(zhuǎn),所以客戶端發(fā)起兩次請求。11、j2ee是技術(shù)還是平臺還是框架?它主要包含哪些技術(shù),列舉并簡單描述2到3個技術(shù)? J2EE本身是一個標(biāo)準(zhǔn),一個為企業(yè)分布式應(yīng)用的開發(fā)提供的標(biāo)準(zhǔn)平臺。J2EE也是一個框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技術(shù)。JDBC:是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。RMI:RMI協(xié)議調(diào)用遠(yuǎn)程對象上的方法。它使用了序列化方式在客戶端和服務(wù)器端傳遞數(shù)據(jù)。RMI是一種被EJB使用的更底層的協(xié)議。12、MVC的各個部分都有哪

8、些技術(shù)來實現(xiàn)?如何實現(xiàn)?MVC是ModelViewController的簡寫。"Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB組件實現(xiàn)), "View" 是應(yīng)用的表示面(由JSP頁面產(chǎn)生),"Controller" 是提供應(yīng)用的處理過程控制(一般是一個Servlet),通過這種設(shè)計模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn)。這些組件可以進行交互和重用。13、什么是JNDI?JNDI是SUN公司提供的一種標(biāo)準(zhǔn)的Java命名系統(tǒng)接口,JNDI提供統(tǒng)一的客戶端API,通過不同的訪問提供者接口JNDI SPI的實

9、現(xiàn),由管理者將JNDI API映射為特定的命名服務(wù)和目錄系統(tǒng),使得Java應(yīng)用程序可以和這些命名服務(wù)和目錄服務(wù)之間進行交互。14、舉例并簡單描述2到3種動態(tài)網(wǎng)頁開發(fā)技術(shù)。1、PHP,是英文超文本預(yù)處理語言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內(nèi)嵌式的語言,是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風(fēng)格有類似于C語言,被廣泛地運用。2、ASP,它是微軟公司開發(fā)的代替CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫和其它程序進行交互,是一種簡單、方便的編程工具。ASP的網(wǎng)頁文件的格式是.asp,現(xiàn)在常用于各種動態(tài)網(wǎng)站中。15、簡單描述瀏覽器輸入http

10、:/localhost:8088/myFirstweb/Firstservlet訪問web資源的過程(也就是servlet工作的時序圖)(提示,解釋地址用端口號和地址訪問服務(wù)器訪問資源)。1瀏覽器會將請求打包成http請求數(shù)據(jù)包,發(fā)送給web服務(wù)器,2web服務(wù)器中的servlet引擎解析請求并封裝為一個HttpServletRequest對象(包含了請求數(shù)據(jù)),同時創(chuàng)建個HttpServletResponse對象。3servlet調(diào)用servlet的service()方法,并將HttpServletReque,HttpServletResponse對象作為參數(shù)傳遞給servlet實例4 se

11、rvlet可以從HttpServletRequest對象中獲得請求數(shù)據(jù),并處理,當(dāng)然,servlet也可能要訪問數(shù)據(jù)庫。然后將處理之后的結(jié)果放到HttpServletResponse中。5servlet引擎從HttpServletResponse中取數(shù)據(jù),并將數(shù)據(jù)打包成http數(shù)據(jù)包發(fā)送給瀏覽器。16、開發(fā)servlet服務(wù)器程序三種方法。開發(fā)servlet有三種方法:a,實現(xiàn)servlet接口; b,繼承GenericServet; c,繼承HttpServlet17、通過httpservlet去開發(fā)servlet,需要重寫doGet和doPost方法。這是常用的方式,請簡述Get與Post

12、方法的區(qū)別。(1)get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。在客戶端,Get方式在通過URL提交數(shù)據(jù),數(shù)據(jù)在URL中可以看到;POST方式,數(shù)據(jù)放置在HTML HEADER內(nèi)提交。(2)對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。(3)GET方式提交的數(shù)據(jù)最多只能有1024字節(jié),而POST則沒有此限制。(4)安全性問題。使用 Get 的時候,參數(shù)會顯示在地址欄上,而 Post 不會。所以,還是使用 post為好。 18、簡述http返回包中的狀態(tài)碼200,302,404,500的

13、意義。200 請求已成功,請求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回。302 請求的資源現(xiàn)在臨時從不同的URI響應(yīng)請求。404 請求失敗,請求所希望得到的資源未被在伺服器上發(fā)現(xiàn)。500 伺服器遇到了一個未曾預(yù)料的狀況,導(dǎo)致了它無法完成對請求的處理.19、簡述請求重定向(response.sendRedirect)和請求轉(zhuǎn)發(fā)(getRequestDispatcher forward)的區(qū)別。1、forward()只能將請求轉(zhuǎn)發(fā)給同一個Web應(yīng)用中的組件,而sendRedirect()方法不僅可以重定向到當(dāng)前應(yīng)用程序中的其他資源,還可以重定向到其他站點的資源。2、sendRedirect()方法重定

14、向的訪問過程結(jié)束后,瀏覽器地址欄中顯示的URL會發(fā)生改變,由初始的URL地址變成重定向的目標(biāo)URL;而調(diào)用forward()方法的請求轉(zhuǎn)發(fā)過程結(jié)束后,瀏覽器地址欄保持初始的URL地址不變。3、forward()方法的調(diào)用者與被調(diào)用者之間共享相同的request對象和response對象;而sendRedirect()方法調(diào)用者和被調(diào)用者使用各自的request對象和response對象,它們屬于兩個獨立的請求和響應(yīng)過程。20、Hibernate拒絕連接、服務(wù)器崩潰的原因?最少寫三個?1. db沒有打開2. 網(wǎng)絡(luò)連接可能出了問題3. 連接配置錯了4. 驅(qū)動的driver,url是否都寫對了5.

15、LIB下加入相應(yīng)驅(qū)動,數(shù)據(jù)連接代碼是否有誤6. 數(shù)據(jù)庫配置可能有問題7. 當(dāng)前聯(lián)接太多了,服務(wù)器都有訪問人數(shù)限制的8. 服務(wù)器的相應(yīng)端口沒有開,即它不提供相應(yīng)的服務(wù)9 hibernate有哪些緩存,分別怎么使用?10 你對hibernate的了解到了一個什么樣的程度?11 寫出一個sql語句體現(xiàn)hibernate中一對多的關(guān)系21、Update()和saveOrUpdate()的區(qū)別?update()方法操作的對象必須是持久化了的對象。也就是說,如果此對象在數(shù)據(jù)庫中不存在的話,就不能使用update()方法。saveOrUpdate()方法操作的對象既可以使持久化了的,也可以使沒有持久化的對象

16、。如果是持久化了的對象調(diào)用saveOrUpdate()則會更新數(shù)據(jù)庫中的對象;如果是未持久化的對象使用此方法,則save到數(shù)據(jù)庫中。22、Hibernate的三種狀態(tài)之間如何轉(zhuǎn)換?當(dāng)對象由瞬時狀態(tài)(Transient)一save()時,就變成了持久化狀態(tài)。當(dāng)我們在Session里存儲對象的時候,實際是在Session的Map里存了一份,也就是它的緩存里放了一份,然后,又到數(shù)據(jù)庫里存了一份,在緩存里這一份叫持久對象(Persistent)。Session 一 Close()了,它的緩存也都關(guān)閉了,整個Session也就失效了,這個時候,這個對象變成了游離狀態(tài)(Detached),但數(shù)據(jù)庫中還是存

17、在的。當(dāng)游離狀態(tài)(Detached)update()時,又變?yōu)榱顺志脿顟B(tài)(Persistent)。當(dāng)持久狀態(tài)(Persistent)delete()時,又變?yōu)榱怂矔r狀態(tài)(Transient),此時,數(shù)據(jù)庫中沒有與之對應(yīng)的記錄。23、 工廠模式?工廠模式主要是為創(chuàng)建對象提供了接口。工廠模式按照J(rèn)ava與模式中的提法分為三類:1. 簡單工廠模式(Simple Factory) 2. 工廠方法模式(Factory Method) 3. 抽象工廠模式(Abstract Factory) 這三種模式從上到下逐步抽象,并且更具一般性。還有一種分類法,就是將簡單工廠模式看為工廠方法模式的一種特例,兩個歸為一

18、類。下面是使用工廠模式的兩種情況:1.在編碼時不能預(yù)見需要創(chuàng)建哪種類的實例。2.系統(tǒng)不應(yīng)依賴于產(chǎn)品類實例如何被創(chuàng)建、組合和表達(dá)的細(xì)節(jié)24、 抽象類和接口的區(qū)別? 接口是公開的,里面不能有私有的方法或變量,是用于讓別人使用的,而抽象類是可以有私有方法或私有變量的, 另外,實現(xiàn)接口的一定要實現(xiàn)接口里定義的所有方法,而實現(xiàn)抽象類可以有選擇地重寫需要用到的方法,一般的應(yīng)用里,最頂級的是接口,然后是抽象類實現(xiàn)接口,最后才到具體類實現(xiàn)。 還有,接口可以實現(xiàn)多重繼承,而一個類只能繼承一個超類,但可以通過繼承多個接口實現(xiàn)多重繼承,接口還有標(biāo)識(里面沒有任何方法,如Remote接口)和數(shù)據(jù)共享(里面的變量全是常

19、量)的作用.25、 Forward和redirect的區(qū)別?forward是服務(wù)器請求資源,服務(wù)器直接訪問目標(biāo)地址的URL,把那個URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器,瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來的,所以它的地址欄中還是原來的地址。 redirect就是服務(wù)端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數(shù)重新請求,所以session,request參數(shù)都可以獲取。26、 持久化對象的三種狀態(tài),代表含義?瞬時態(tài):簡單的說就是你在程序里面new一個對象,還沒有和session關(guān)聯(lián) 持久態(tài):對象和session有了關(guān)聯(lián),對象

20、處于hibernate框架管理中 游離態(tài):在持久態(tài)的情況下,對象和session失去了關(guān)聯(lián),比如session.close()或session.flush() 后,即游離態(tài),但數(shù)據(jù)已經(jīng)存儲到了數(shù)據(jù)庫27、 頁面之間的值傳遞?1:可以分成多個參數(shù)對的方式用querystring傳遞。2:可以用特定的字符分隔后組成一個字符串,再用一個參數(shù)對的querystring方式傳遞。3:如果是第三信息的話,可以用在服務(wù)器端的session方式傳遞,一般不用這種方式。因為占服務(wù)器資源。4:也可以用cookie方式傳遞。5:當(dāng)然還可以用其它的不常的方式傳遞。28、 Struts框架的數(shù)據(jù)驗證可分為幾種類型?表單

21、驗證(由ActionForm Bean處理):如果用戶沒有在表單中輸入姓名,就提交表單,將生成表單驗證錯誤業(yè)務(wù)邏輯驗證(由Action處理):如果用戶在表單中輸入的姓名為“Monster”,按照本應(yīng)用的業(yè)務(wù)規(guī)則,不允許向“Monster”打招呼,因此將生成業(yè)務(wù)邏輯錯誤。29、 寫一個Singleton模式的例子?public class Singleton private static final Singleton singleton = new Singleton(); private Singleton() public static Singleton getInstance() re

22、turn singleton; 30、 談?wù)勀鉓VC的理解? MVC是一種設(shè)計模式,它強制的將應(yīng)用程序的輸入、處理、和輸出分開。 使用了MVC的應(yīng)用程序被分為3個核心部件:試圖(View)、模型(Model)、控制器(Controller)。它們各司其職,既分工明確又相互合作。 首先視圖接受用戶輸入請求,然后將請求傳遞給控制器,控制器再調(diào)用某個模型來處理用戶的請求,在控制器的控制下,再將處理后的結(jié)果交給某個視圖進行格式化輸出給用戶.這是經(jīng)典的MVC設(shè)計執(zhí)行的基本流程。MVC不僅實現(xiàn)了功能模塊和顯示模塊的分離,同時它還提高了系統(tǒng)的可維護性、可擴展性和組件的可復(fù)用性,是一個優(yōu)秀的創(chuàng)建軟件的途徑。

23、J2EE把MVC引入了web領(lǐng)域,并在此基礎(chǔ)上架構(gòu)出了一套稱為Model2的體系。Model2體系及jsp作為視圖顯示輸出和接受用戶輸入數(shù)據(jù),Servlet作為控制器處理用戶請求并根據(jù)用戶請求選擇相應(yīng)的jsp返回給用戶,javaBean作為模型組件用作業(yè)務(wù)邏輯處理、管理數(shù)據(jù)的存儲和一致性。31、 項目中為什么使用SSH? 1. 使用Struts是因為struts是基于MVC模式的,很好的將應(yīng)用程序進行了分層,使開發(fā)者更關(guān)注于業(yè)務(wù)邏輯的實現(xiàn);第二,struts有著豐富的taglib,如能靈活運用,則能大大提高開發(fā)效率。2. 使用Hibernate:因為hibernate為Java應(yīng)用提供了一個易

24、用的、高效率的對象關(guān)系映射框架。hibernate是個輕量級的持久性框架,功能豐富。3. 使用Spring:因為spring基于IoC(Inversion of Control,反向控制)和AOP構(gòu)架多層j2ee系統(tǒng)的框架,但它不強迫你必須在每一層中必須使用Spring,因為它模塊化的很好,允許你根據(jù)自己的需要選擇使用它的某一個模塊;采用IoC使得可以很容易的實現(xiàn)bean的裝配,提供了簡潔的AOP并據(jù)此實現(xiàn)事務(wù)管理(Transcation Managment),等等32、 在Struts2中,action是單實例還是多實例,為什么? struts 2的Action是多實例的并非單例,也就是每次

25、請求產(chǎn)生一個Action的對象。原因是:struts 2的Action中包含數(shù)據(jù),例如你在頁面填寫的數(shù)據(jù)就會包含在Action的成員變量里面。如果Action是單實例的話,這些數(shù)據(jù)在多線程的環(huán)境下就會相互影響,例如造成別人填寫的數(shù)據(jù)被你看到了。所以Struts2的Action是多例模式的。33、Hibernate與jdbc的聯(lián)系?hibernate是jdbc的輕量級封裝,包括jdbc的與數(shù)據(jù)庫的連接(用perty的配置文件實現(xiàn)當(dāng)然本質(zhì)是封裝了jdbc的forname),和查詢,刪除等代碼,都用面向?qū)ο蟮乃枷胗么a聯(lián)系起來,hibernate通過hbm 配置文件把po類

26、的字段和數(shù)據(jù)庫的字段關(guān)聯(lián)起來比如數(shù)據(jù)庫的id,在po類中就是pravite Long id; public Long getId() ;public setId(Long id);然后hql語句也是面向?qū)ο蟮?,它的查詢語句不是查詢數(shù)據(jù)庫而是查詢類的,這些實現(xiàn)的魔法就是xml文件,其實hibernate=封裝的jdbc+xml文件34、 一般用spring做什么?Spring是一個解決了許多在J2EE開發(fā)中常見的問題的強大框架。 Spring提供了管理業(yè)務(wù)對象的一致方法并且鼓勵了注入對接口編程而不是對類編程的良好習(xí)慣。Spring的架構(gòu)基礎(chǔ)是基于使用JavaBean屬性的Inversion of

27、 Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構(gòu)建完關(guān)注所有架構(gòu)層的完整解決方案方面是獨一無二的。 Spring提供了唯一的數(shù)據(jù)訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率并且減少了可能的錯誤。Spring的數(shù)據(jù)訪問架構(gòu)還集成了Hibernate和其他O/R mapping解決方案。Spring還提供了唯一的事務(wù)管理抽象,它能夠在各種底層事務(wù)管理技術(shù),例如JTA或者JDBC事務(wù)提供一個一致的編程模型。Spring提供了一個用標(biāo)準(zhǔn)Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務(wù)管理和其他企業(yè)事務(wù)-如果你需要-還能實現(xiàn)你自己的a

28、spects。這個框架足夠強大,使得應(yīng)用程序能夠拋開EJB的復(fù)雜性,同時享受著和傳統(tǒng)EJB相關(guān)的關(guān)鍵服務(wù)。Spring還提供了可以和IoC容器集成的強大而靈活的MVC Web框架。35、 C/S與B/S的區(qū)別?C/S 架構(gòu)是一種典型的兩層架構(gòu),其全程是Client/Server,即客戶端服務(wù)器端架構(gòu),其客戶端包含一個或多個在用戶的電腦上運行的程序,而服務(wù)器端有兩種,一種是數(shù)據(jù)庫服務(wù)器端,客戶端通過數(shù)據(jù)庫連接訪問服務(wù)器端的數(shù)據(jù);另一種是Socket服務(wù)器端,服務(wù)器端的程序通過Socket與客戶端的程序通信。C/S 架構(gòu)也可以看做是胖客戶端架構(gòu)。因為客戶端需要實現(xiàn)絕大多數(shù)的業(yè)務(wù)邏輯和界面展示。這種

29、架構(gòu)中,作為客戶端的部分需要承受很大的壓力,因為顯示邏輯和事務(wù)處理都包含在其中,通過與數(shù)據(jù)庫的交互(通常是SQL或存儲過程的實現(xiàn))來達(dá)到持久化數(shù)據(jù),以此滿足實際項目的需要。B/S架構(gòu)的全稱為Browser/Server,即瀏覽器/服務(wù)器結(jié)構(gòu)。Browser指的是Web瀏覽器,極少數(shù)事務(wù)邏輯在前端實現(xiàn),但主要事務(wù)邏輯在服務(wù)器端實現(xiàn),Browser客戶端,WebApp服務(wù)器端和DB端構(gòu)成所謂的三層架構(gòu)。B/S架構(gòu)的系統(tǒng)無須特別安裝,只有Web瀏覽器即可。B/S架構(gòu)中,顯示邏輯交給了Web瀏覽器,事務(wù)處理邏輯在放在了WebApp上,這樣就避免了龐大的胖客戶端,減少了客戶端的壓力。因為客戶端包含的邏輯

30、很少,因此也被成為瘦客戶端。36、 J2EE常用的設(shè)計模式?說明工廠模式?Java中的23種設(shè)計模式:Factory(工廠模式),Builder(建造模式),Factory Method(工廠方法模式),Prototype(原始模型模式),Singleton(單例模式),F(xiàn)acade(門面模式),Adapter(適配器模式),Bridge(橋梁模式), Composite(合成模式),Decorator(裝飾模式), Flyweight(享元模式), Proxy(代理模式),Command(命令模式), Interpreter(解釋器模式), Visitor(訪問者模式),Iterator(迭

31、代子模式), Mediator(調(diào)停者模式), Memento(備忘錄模式),Observer(觀察者模式), State(狀態(tài)模式), Strategy(策略模式),Template Method(模板方法模式), Chain Of Responsibleity(責(zé)任鏈模式)工廠模式:工廠模式是一種經(jīng)常被使用到的模式,根據(jù)工廠模式實現(xiàn)的類可以根據(jù)提供的數(shù)據(jù)生成一組類中某一個類的實例,通常這一組類有一個公共的抽象父類并且實現(xiàn)了相同的方法,但是這些方法針對不同的數(shù)據(jù)進行了不同的操作。首先需要定義一個基類,該類的子類通過不同的方法實現(xiàn)了基類中的方法。然后需要定義一個工廠類,工廠類可以根據(jù)條件生成不

32、同的子類實例。當(dāng)?shù)玫阶宇惖膶嵗?,開發(fā)人員可以調(diào)用基類中的方法而不必考慮到底返回的是哪一個子類的實例。37、BeanFactory的作用是什么?BeanFactory提供的高級配置機制,使得管理任何性質(zhì)的對象成為可能。在Spring中,BeanFactory是IoC容器的核心接口。它的職責(zé)包括:實例化、定位、配置應(yīng)用程序中的對象及建立這些對象間的依賴。Spring為我們提供了許多易用的BeanFactory實現(xiàn),XmlBeanFactory就是最常用的一個。該實現(xiàn)將以XML方式描述組成應(yīng)用的對象以及對象間的依賴關(guān)系。XmlBeanFactory類將持有此XML配置元數(shù)據(jù),并用它來構(gòu)建一個完全可

33、配置的系統(tǒng)或應(yīng)用。Ajax的工作原理?通過javascript的方式,將前臺數(shù)據(jù)通過xmlhttp對象傳遞到后臺,后臺在接收到請求后,將需要的結(jié)果,再傳回到前臺,這樣就可以實現(xiàn)不需要頁面的回發(fā),頁是數(shù)據(jù)實現(xiàn)來回傳遞,從頁實現(xiàn)無刷新。 39、何為容器?容器是一個Java 所編寫的程序,原先必須自行編寫程序以管理對象關(guān)系,現(xiàn)在容器都會自動幫您作好。常用容器WebSphere,WebLogic,Resin,Tomcat40、 Spring配置文件中的ref元素的作用是什么?它的兩個基本屬性是什么? 用于指定屬性值為spring容器中的其它bean.兩個基本屬性是bean和local 41、 Hibe

34、rnate具有的三種檢索方式?HQL檢索方式 QBC檢索方式 SQL檢索方式 42、 什么是IOC,請詳述? 不創(chuàng)建對象,但是描述創(chuàng)建它們的方式。在代碼中不直接與對象和服務(wù)連接,但在配置文件中描述哪一個組件需要哪一項服務(wù)。容器(在Spring 框架中是 IOC 容器) 負(fù)責(zé)將這些聯(lián)系在一起。 就是由容器控制程序之間的關(guān)系,而非傳統(tǒng)實現(xiàn)中,由程序代碼直接操控,控制權(quán)由應(yīng)用代碼中轉(zhuǎn)到了外部容器,控制權(quán)的轉(zhuǎn)移,就是所謂的反轉(zhuǎn)。 43、 什么是AOP,請詳述? 是面向切面編程 。 AOP 把軟件系統(tǒng)分為兩個部分:核心關(guān)注點和橫切關(guān)注點。所謂的核心關(guān)注點,是業(yè)務(wù)處理的主要流程,也就是說這個解決方案要做的

35、事。所謂橫切關(guān)注點,是與核心業(yè)務(wù)無關(guān)的部分,它把常發(fā)生在核心關(guān)注點的多處,而各處基本相似,如日志,事務(wù),權(quán)限等 。 44、 Spring框架的七個模塊是什么?(1) spring AOP -面象切面編程 (2)spring DAO -數(shù)據(jù)訪問對象 (3)spring ORM -對象關(guān)系影射 (4)spring Contect - 上下文配置,向Spring框架提供上下文信息 (5)spring WEB - -WEB上下文模塊 (6)spring WEB-MVC -實現(xiàn)了MVC (7)spring CORE 核心容器提供Spring框架基本功能 45、 Spring的注入方式有哪幾種?1. 接口

36、注入(不推薦)2. getter,setter方式注入(比較常用)3. 構(gòu)造器注入(死的應(yīng)用)接口注入模式因為具備侵入性,它要求組件必須與特定的接口相關(guān)聯(lián),因此并不被看好,實際使用有限。Setter 注入:對于習(xí)慣了傳統(tǒng) javabean 開發(fā)的程序員,通過 setter 方法設(shè)定依賴關(guān)系更加直觀。如果依賴關(guān)系較為復(fù)雜,那么構(gòu)造子注入模式的構(gòu)造函數(shù)也會相當(dāng)龐大,而此時設(shè)值注入模式則更為簡潔。如果用到了第三方類庫,可能要求我們的組件提供一個默認(rèn)的構(gòu)造函數(shù),此時構(gòu)造子注入模式也不適用。構(gòu)造器注入:在構(gòu)造期間完成一個完整的、合法的對象。所有依賴關(guān)系在構(gòu)造函數(shù)中集中呈現(xiàn)。依賴關(guān)系在構(gòu)造時由容器一次性設(shè)定,組件被創(chuàng)建之后一直處于相對“不變”的穩(wěn)定狀態(tài)。只有組件的創(chuàng)建者關(guān)心其內(nèi)部依賴關(guān)系,對調(diào)用者而言,該依賴關(guān)系處

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論