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

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、uration 對(duì)象可以創(chuàng)建一個(gè) sessionFactory 對(duì)象的實(shí)例 ,同時(shí)是生成 Session 對(duì)象實(shí)例的工廠 ,他在整個(gè)應(yīng)用中應(yīng)該是 ,唯一的 。STEP 3:創(chuàng)建 Session 對(duì)象 。 Session 對(duì)象類似于數(shù)據(jù)庫的連接對(duì)象 ,可以理解為與數(shù)據(jù)庫建立的一個(gè)連接 ,但是他的功能要比 JDBC 中的 Connection 對(duì)象豐富很多。STEP 4:開始一個(gè)事務(wù) 。 在 Java 中定義一個(gè)事務(wù)操作的開始 ,這是使用 Hibernate 進(jìn)行持久化操作必不可少的步驟STEP 5:進(jìn)行持久化操作 。在這個(gè)步驟中可以讀取或者保存Java 對(duì)象 。STEP 6:結(jié)束事務(wù) 。在操作完

4、成之后還要進(jìn)行顯式的結(jié)束事務(wù)的操作。STEP 7:關(guān)閉 Session。類似于釋放數(shù)據(jù)庫的連接。5、為什么要實(shí)現(xiàn)序列化 ?1、序列化以某種存儲(chǔ)形式使自定義對(duì)象持久化2、序列化將對(duì)象轉(zhuǎn)換為可傳輸方式從一個(gè)地方傳遞到另一個(gè)地方3、序列化使程序更具維護(hù)性6、比較一下 sessionFactory中的 opensession ()和getcurrentsession()方法1、getCurrentSession 創(chuàng)建的 session 會(huì)和綁定到當(dāng)前線程 ,而 openSession 不會(huì)。.專業(yè)專注.2 、 getCurrentSession 創(chuàng)建的線程會(huì)在事務(wù)回滾或事物提交后自動(dòng)關(guān)閉 ,而 ope

5、nSession 必須手動(dòng)關(guān)閉7、比較一下 session 中的 load ()和 get ()方法,以及如何保證每次都是從數(shù)據(jù)庫讀取而不是在緩存中讀 ?load ()和 get ()方法均可以根據(jù)指定的實(shí)體類和 id 從數(shù)據(jù)庫讀取記錄 ,并返回與之對(duì)應(yīng)的實(shí)體對(duì)象 。其區(qū)別在于 :如果未能發(fā)現(xiàn)符合條件的記錄 , get 方法返回 null ,而 load 方法會(huì)拋出一個(gè) ObjectNotFoundException 。Load 方法可返回實(shí)體的代理類實(shí)例,而 get 方法永遠(yuǎn)直接返回實(shí)體類。load 方法可以充分利用內(nèi)部緩存和二級(jí)緩存中的現(xiàn)有數(shù)據(jù) ,而 get 方法則僅僅在內(nèi)部緩存中進(jìn)行數(shù)據(jù)

6、查找 ,如沒有發(fā)現(xiàn)對(duì)應(yīng)數(shù)據(jù) ,將越過二級(jí)緩存 ,直接調(diào)用 SQL 完成數(shù)據(jù)讀取 。8、Action 接受用戶參數(shù)輸入 ,主要有哪幾種方式 ?我們常用的是哪一種?1.Action 屬性接收參數(shù) ; 2 Domain modal(域模型 )接收參數(shù) ; 3.Modaldriven 接收參數(shù) 。常用第一種跟第二種9、在 struts 中實(shí)現(xiàn)一個(gè) action有哪幾種方式 ?最常用的是哪種 ?1定義一個(gè)普通的類 ,類中只要有一個(gè) public String execute() 方法且返回一個(gè)字符串即可 。2.定義一個(gè)類 ,實(shí)現(xiàn) Action 接口,xwork2.Action這個(gè)包的3 繼承 xwork

7、2.ActionSupport這個(gè)類。最常用的是第三種10 、在 struts.xml中 Result 的 type 常用的有四種類型.專業(yè)專注.1)dispatcher 2 )redirect 3 )chain 4 ) redirectAction哪些是服務(wù)器跳轉(zhuǎn) ?哪些是客戶端跳轉(zhuǎn) ?dispatcher 和 chain 是服務(wù)器端跳轉(zhuǎn) ,所以客戶端只發(fā)起一次請(qǐng)求redirect 和 redirectAction是客戶端跳轉(zhuǎn) ,所以客戶端發(fā)起兩次請(qǐng)求。11 、j2ee 是技術(shù)還是平臺(tái)還是框架 ?它主要包含哪些技術(shù) ,列舉并簡(jiǎn)單描述 2到 3個(gè)技術(shù)?J2EE本身是一個(gè)標(biāo)準(zhǔn) ,一個(gè)為企業(yè)分布式

8、應(yīng)用的開發(fā)提供的標(biāo)準(zhǔn)平臺(tái)。 J2EE也是一個(gè)框架 ,包括 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)程對(duì)象上的方法 。 它使用了序列化方式在客戶端和服務(wù)器端傳遞數(shù)據(jù) 。RMI 是一種被 EJB使用的更底層的協(xié)議 。12 、MVC 的各個(gè)部分都有哪些技術(shù)來實(shí)現(xiàn)?如何實(shí)現(xiàn) ?MVC 是 Model View Controller 的簡(jiǎn)寫 。 "Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過

9、 JavaBean,EJB組件實(shí)現(xiàn) ), "View" 是應(yīng)用的表示面 (由 JSP頁面產(chǎn)生), "Controller" 是提供應(yīng)用的處理過程控制 (一般是一個(gè) Servlet ),通過這種設(shè)計(jì)模型把應(yīng)用邏輯 ,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn) 。這些組件可以進(jìn)行交互和重用 。13 、什么是 JNDI ?JNDI 是 SUN 公司提供的一種標(biāo)準(zhǔn)的 Java 命名系統(tǒng)接口 ,JNDI 提供統(tǒng)一的客戶端 API,通過不同的訪問提供者接口 JNDI SPI 的實(shí)現(xiàn),由管理者將 JNDI API 映射為特定的命名服務(wù)和目錄系統(tǒng) ,使得 Java 應(yīng)用程序可

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

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

12、作為參數(shù)傳遞給 servlet 實(shí)例4 servlet 可以從 HttpServletRequest 對(duì)象中獲得請(qǐng)求數(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,實(shí)現(xiàn) servlet 接口 ; b, 繼承 GenericServet; c, 繼承HttpServlet17 、通過 httpserv

13、let 去開發(fā) servlet, 需要重寫 doGet 和 doPost 方法 。這是常用的方式 ,請(qǐng)簡(jiǎn)述 Get 與 Post 方法的區(qū)別 。.專業(yè)專注.( 1) get 是從服務(wù)器上獲取數(shù)據(jù) ,post 是向服務(wù)器傳送數(shù)據(jù) 。在客戶端 ,Get 方式在通過 URL 提交數(shù)據(jù) ,數(shù)據(jù)在 URL 中可以看到 ;POST 方式,數(shù)據(jù)放置在 HTML HEADER 內(nèi)提交 。( 2)對(duì)于 get 方式,服務(wù)器端用 Request.QueryString 獲取變量的值 ,對(duì)于post 方式,服務(wù)器端用 Request.Form 獲取提交的數(shù)據(jù) 。( 3) GET方式提交的數(shù)據(jù)最多只能有 1024 字

14、節(jié),而 POST 則沒有此限制 。( 4)安全性問題 。使用 Get 的時(shí)候,參數(shù)會(huì)顯示在地址欄上 ,而 Post 不會(huì) 。所以,還是使用 post 為好 。18 、簡(jiǎn)述 http返回包中的狀態(tài)碼200 ,302 ,404 ,500 的意義 。200 請(qǐng)求已成功 ,請(qǐng)求所希望的響應(yīng)頭或數(shù)據(jù)體將隨此響應(yīng)返回 。302 請(qǐng)求的資源現(xiàn)在臨時(shí)從不同的 URI 響應(yīng)請(qǐng)求 。404 請(qǐng)求失敗 ,請(qǐng)求所希望得到的資源未被在伺服器上發(fā)現(xiàn) 。500 伺服器遇到了一個(gè)未曾預(yù)料的狀況 ,導(dǎo)致了它無法完成對(duì)請(qǐng)求的處理 .19 、簡(jiǎn)述請(qǐng)求重定向 (response.sendRedirect)和請(qǐng)求轉(zhuǎn)發(fā)(getReque

15、stDispatcher forward)的區(qū)別。1、forward() 只能將請(qǐng)求轉(zhuǎn)發(fā)給同一個(gè)Web 應(yīng)用中的組件 ,而 sendRedirect()方法不僅可以重定向到當(dāng)前應(yīng)用程序中的其他資源,還可以重定向到其他站點(diǎn)的資源。2、sendRedirect() 方法重定向的訪問過程結(jié)束后 ,瀏覽器地址欄中顯示的 URL 會(huì)發(fā)生改變 ,由初始的 URL 地址變成重定向的目標(biāo) URL;而調(diào)用 forward() 方法的請(qǐng)求轉(zhuǎn)發(fā)過程結(jié)束后 ,瀏覽器地址欄保持初始的 URL 地址不變 。.專業(yè)專注.3、forward() 方法的調(diào)用者與被調(diào)用者之間共享相同的request 對(duì)象和response 對(duì)象

16、;而 sendRedirect() 方法調(diào)用者和被調(diào)用者使用各自的 request 對(duì)象和 response 對(duì)象,它們屬于兩個(gè)獨(dú)立的請(qǐng)求和響應(yīng)過程 。20 、Hibernate拒絕連接 、服務(wù)器崩潰的原因 ?最少寫三個(gè) ?1. db 沒有打開2. 網(wǎng)絡(luò)連接可能出了問題3. 連接配置錯(cuò)了4. 驅(qū)動(dòng)的 driver , url 是否都寫對(duì)了5. LIB 下加入相應(yīng)驅(qū)動(dòng) ,數(shù)據(jù)連接代碼是否有誤6. 數(shù)據(jù)庫配置可能有問題7. 當(dāng)前聯(lián)接太多了 ,服務(wù)器都有訪問人數(shù)限制的8. 服務(wù)器的相應(yīng)端口沒有開 ,即它不提供相應(yīng)的服務(wù)9 hibernate有哪些緩存 ,分別怎么使用 ?10 你對(duì) hibernate

17、 的了解到了一個(gè)什么樣的程度?11 寫出一個(gè) sql 語句體現(xiàn) hibernate 中一對(duì)多的關(guān)系21 、Update ()和 saveOrUpdate ()的區(qū)別?update() 方法操作的對(duì)象必須是持久化了的對(duì)象 。也就是說 ,如果此對(duì)象在數(shù)據(jù)庫中不存在的話 ,就不能使用 update() 方法 。saveOrUpdate() 方法操作的對(duì)象既可以使持久化了的 ,也可以使沒有持久化的對(duì)象 。如果是持久化了的對(duì)象調(diào)用 saveOrUpdate() 則會(huì)更新數(shù)據(jù)庫中的對(duì)象 ;如果是未持久化的對(duì)象使用此方法 ,則 save 到數(shù)據(jù)庫中。.專業(yè)專注.22 、Hibernate的三種狀態(tài)之間如何轉(zhuǎn)

18、換?當(dāng)對(duì)象由瞬時(shí)狀態(tài) (Transient) 一 save()時(shí),就變成了持久化狀態(tài) 。 當(dāng)我們?cè)?Session 里存儲(chǔ)對(duì)象的時(shí)候 ,實(shí)際是在 Session 的 Map 里存了一份 ,也就是它的緩存里放了一份 ,然后,又到數(shù)據(jù)庫里存了一份 ,在緩存里這一份叫持久對(duì)象 (Persistent) 。Session 一 Close() 了,它的緩存也都關(guān)閉了 ,整個(gè) Session 也就失效了 ,這個(gè)時(shí)候 ,這個(gè)對(duì)象變成了游離狀態(tài) (Detached) ,但數(shù)據(jù)庫中還是存在的 。 當(dāng)游離狀態(tài) (Detached)update() 時(shí),又變?yōu)榱顺志脿顟B(tài) (Persistent) 。當(dāng)持久狀態(tài) (P

19、ersistent)delete() 時(shí),又變?yōu)榱怂矔r(shí)狀態(tài) (Transient), 此時(shí),數(shù)據(jù)庫中沒有與之對(duì)應(yīng)的記錄 。23、工廠模式 ?工廠模式主要是為創(chuàng)建對(duì)象提供了接口 。工廠模式按照 Java 與模式中的提法分為三類 :1. 簡(jiǎn)單工廠模式 (Simple Factory) 2. 工廠方法模式 (Factory Method) 3. 抽象工廠模式 (Abstract Factory)這三種模式從上到下逐步抽象 ,并且更具一般性 。還有一種分類法 ,就是將簡(jiǎn)單工廠模式看為工廠方法模式的一種特例 ,兩個(gè)歸為一類 。下面是使用工廠模式的兩種情況 :1.在編碼時(shí)不能預(yù)見需要?jiǎng)?chuàng)建哪種類的實(shí)例 。2

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

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

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

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

24、Singleton getInstance()return singleton;30、談?wù)勀?MVC 的理解?MVC是一種設(shè)計(jì)模式,它強(qiáng)制的將應(yīng)用程序的輸入、處理、和輸出分開 。 使用了MVC 的應(yīng)用程序被分為3 個(gè)核心部件 :試圖 (View) 、模型 (Model) 、控制器 (Controller)。它們各司其職 ,既分工明確又相互合作。 首先視圖接受用戶輸入請(qǐng)求,然后將請(qǐng)求傳遞給控制器 ,控制器再調(diào)用某個(gè)模型來處理用戶的請(qǐng)求,在控制器的控制下 ,再將處理后的結(jié)果交給某個(gè)視圖進(jìn)行格式化輸出給用戶.這是經(jīng)典的 MVC 設(shè)計(jì)執(zhí)行的基本流程 。 MVC 不僅實(shí)現(xiàn)了功能模塊和顯示模塊的分離,同時(shí)

25、它還提高了系統(tǒng)的可維護(hù)性、可擴(kuò)展性和組件的可復(fù)用性 ,是一個(gè)優(yōu)秀的創(chuàng)建軟件的途徑。 J2EE 把 MVC 引入了 web 領(lǐng)域 ,并在此基礎(chǔ)上架構(gòu)出了一套稱為 Model2 的體系 。 Model2體系及 jsp 作為視圖顯示輸出和接受用戶輸入數(shù)據(jù) , Servlet 作為控制器處理用戶請(qǐng)求并根據(jù)用戶請(qǐng)求選擇相應(yīng)的jsp 返回給用戶 ,javaBean 作為模型組件用作業(yè)務(wù)邏輯處理、管理數(shù)據(jù)的存儲(chǔ)和一致性。31、項(xiàng)目中為什么使用SSH?1. 使用 Struts 是因?yàn)?struts 是基于 MVC 模式的 ,很好的將應(yīng)用程序進(jìn)行了分層,使開發(fā)者更關(guān)注于業(yè)務(wù)邏輯的實(shí)現(xiàn) ;第二,struts 有著

26、豐富的 taglib, 如能靈活運(yùn)用 ,則能大大提高開發(fā)效率 。2. 使用 Hibernate :因?yàn)?hibernate 為 Java 應(yīng)用提供了一個(gè)易用的 、高效率的對(duì)象關(guān)系映射框架 。hibernate 是個(gè)輕量級(jí)的持久性框架 ,功能豐富 。3. 使用 Spring :因?yàn)?spring 基于 IoC(Inversion of Control,反向控制 )和 AOP構(gòu)架多層 j2ee 系統(tǒng)的框架 ,但它不強(qiáng)迫你必須在每一層中必須使用Spring ,因?yàn)樗K化的很好 ,允許你根據(jù)自己的需要選擇使用它的某一個(gè)模塊;.專業(yè)專注.采用 IoC 使得可以很容易的實(shí)現(xiàn) bean 的裝配,提供了簡(jiǎn)潔

27、的 AOP 并據(jù)此實(shí)現(xiàn)事務(wù)管理 (Transcation Managment), 等等32、在 Struts2 中,action 是單實(shí)例還是多實(shí)例 ,為什么?struts 2 的 Action 是多實(shí)例的并非單例 ,也就是每次請(qǐng)求產(chǎn)生一個(gè) Action 的對(duì)象 。原因是 : struts 2 的 Action 中包含數(shù)據(jù) ,例如你在頁面填寫的數(shù)據(jù)就會(huì)包含在 Action 的成員變量里面 。如果 Action 是單實(shí)例的話 ,這些數(shù)據(jù)在多線程的環(huán)境下就會(huì)相互影響 ,例如造成別人填寫的數(shù)據(jù)被你看到了 。所以 Struts2 的 Action 是多例模式的 。33 、Hibernate與 jdbc

28、 的聯(lián)系?hibernate 是 jdbc的輕量級(jí)封裝 ,包括 jdbc 的與數(shù)據(jù)庫的連接 (用perty的配置文件實(shí)現(xiàn)當(dāng)然本質(zhì)是封裝了jdbc 的 forname ),和查詢,刪除等代碼 ,都用面向?qū)ο蟮乃枷胗么a聯(lián)系起來,hibernate 通過hbm 配置文件把 po 類的字段和數(shù)據(jù)庫的字段關(guān)聯(lián)起來比如數(shù)據(jù)庫的id,在 po類中就是 pravite Long id; public Long getId() ;public setId(Long id);然后 hql語句也是面向?qū)ο蟮?,它的查詢語句不是查詢數(shù)據(jù)庫而是查詢類的,這些實(shí)現(xiàn)的魔法就是 xml 文件,其實(shí)

29、 hibernate= 封裝的 jdbc+xml文件34、一般用 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)了效率并且

30、減少了可能的錯(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è)專注.得應(yīng)用程序能夠拋開EJB的復(fù)雜性 ,同時(shí)享受著和傳統(tǒng)EJB相關(guān)的關(guān)鍵服務(wù) 。Spring 還提供了可以和IoC 容器集成的強(qiáng)大而靈

31、活的MVC Web 框架 。35、C/S 與 B/S 的區(qū)別?C/S 架構(gòu)是一種典型的兩層架構(gòu),其全程是 Client/Server ,即客戶端 服務(wù)器端架構(gòu),其客戶端包含一個(gè)或多個(gè)在用戶的電腦上運(yùn)行的程序 ,而服務(wù)器端 有兩種,一種是數(shù)據(jù)庫 服務(wù)器端 ,客戶端通過數(shù)據(jù)庫連接訪問服務(wù)器端的數(shù)據(jù) ;另一種是 Socket 服務(wù)器端 ,服務(wù)器端的程序通過 Socket 與客戶端的程序通信 。C/S 架構(gòu)也可以看做是 胖客戶端 架構(gòu) 。因?yàn)榭蛻舳诵枰獙?shí)現(xiàn)絕大多數(shù)的 業(yè)務(wù)邏輯和界面展示 。 這種架構(gòu)中 ,作為客戶端的部分需要承受很大的壓力 ,因?yàn)轱@示邏輯和事務(wù)處理都包含在其中 ,通過與數(shù)據(jù)庫的交互 (

32、通常是 SQL 或存儲(chǔ)過程的實(shí)現(xiàn) )來達(dá)到持久化數(shù)據(jù) ,以此滿足實(shí)際項(xiàng)目的需要 。B/S 架構(gòu)的全稱為 Browser/Server ,即瀏覽器 / 服務(wù)器結(jié)構(gòu) 。 Browser 指的是 Web 瀏覽器,極少數(shù)事務(wù)邏輯在前端實(shí)現(xiàn) ,但主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn) , Browser 客戶端, WebApp 服務(wù)器端和 DB 端構(gòu)成所謂的三層架構(gòu) 。B/S 架構(gòu)的系統(tǒng)無須特別安裝 ,只有 Web 瀏覽器即可 。B/S 架構(gòu)中,顯示邏輯交給了 Web 瀏覽器,事務(wù)處理邏輯在放在了 WebApp 上,這樣就避免了龐大的 胖客戶端,減少了客戶端的壓力 。因?yàn)榭蛻舳税倪壿嫼苌?,因此也被成為 瘦客戶

33、端。36、J2EE 常用的設(shè)計(jì)模式 ?說明工廠模式 ?Java 中的 23 種設(shè)計(jì)模式 :Factory (工廠模式 ),Builder (建造模式 ) ,Factory Method (工廠方法模式), Prototype (原始模型模式 ), Singleton (單例模式 ), Facade(門面模式), Adapter (適配器模式 ), Bridge (橋梁模式 ), Composite (合成模式), Decorator (裝飾模式 ), Flyweight (享元模式 ), Proxy (代理模式), Command (命令模式 ), Interpreter (解釋器模式 ),

34、Visitor (訪問者模式), Iterator (迭代子模式 ), Mediator (調(diào)停者模式 ), Memento (備忘錄模式 ), Observer (觀察者模式 ), State (狀態(tài)模式 ), Strategy.專業(yè)專注.(策略模式 ), Template Method (模板方法模式 ), Chain Of Responsibleity (責(zé)任鏈模式 )工廠模式 :工廠模式是一種經(jīng)常被使用到的模式 ,根據(jù)工廠模式實(shí)現(xiàn)的類可以根據(jù)提供的數(shù)據(jù)生成一組類中某一個(gè)類的實(shí)例 ,通常這一組類有一個(gè)公共的抽象父類并且實(shí)現(xiàn)了相同的方法 ,但是這些方法針對(duì)不同的數(shù)據(jù)進(jìn)行了不同的操作。首先需

35、要定義一個(gè)基類 ,該類的子類通過不同的方法實(shí)現(xiàn)了基類中的方法。然后需要定義一個(gè)工廠類 ,工廠類可以根據(jù)條件生成不同的子類實(shí)例 。 當(dāng)?shù)玫阶宇惖膶?shí)例后 ,開發(fā)人員可以調(diào)用基類中的方法而不必考慮到底返回的是哪一個(gè)子類的實(shí)例 。37、BeanFactory的作用是什么 ?BeanFactory 提供的高級(jí)配置機(jī)制 ,使得管理任何性質(zhì)的對(duì)象成為可能 。在 Spring 中,BeanFactory 是 IoC 容器的核心接口 。它的職責(zé)包括 :實(shí)例化、定位、配置應(yīng)用程序中的對(duì)象及建立這些對(duì)象間的依賴。 Spring 為我們提供了許多易用的 BeanFactory 實(shí)現(xiàn),XmlBeanFactory 就是

36、最常用的一個(gè) 。該實(shí)現(xiàn)將以XML 方式描述組成應(yīng)用的對(duì)象以及對(duì)象間的依賴關(guān)系 。XmlBeanFactory 類將持有此 XML 配置元數(shù)據(jù) ,并用它來構(gòu)建一個(gè)完全可配置的系統(tǒng)或應(yīng)用 。Ajax 的工作原理 ?通過 javascript 的方式,將前臺(tái)數(shù)據(jù)通過 xmlhttp 對(duì)象傳遞到后臺(tái) ,后臺(tái)在接收到請(qǐng)求后 ,將需要的結(jié)果 ,再傳回到前臺(tái) ,這樣就可以實(shí)現(xiàn)不需要頁面的回發(fā),頁是數(shù)據(jù)實(shí)現(xiàn)來回傳遞 ,從頁實(shí)現(xiàn)無刷新 。39 、何為容器 ?容器是一個(gè) Java 所編寫的程序 ,原先必須自行編寫程序以管理對(duì)象關(guān)系,現(xiàn)在容器都會(huì)自動(dòng)幫您作好 。 常用容器 WebSphere ,WebLogic ,

37、Resin,Tomcat40、Spring 配置文件中的 ref 元素的作用是什么 ?它的兩個(gè)基本屬性是什么 ?.專業(yè)專注.用于指定屬性值為spring 容器中的其它 bean. 兩個(gè)基本屬性是bean 和 local41、Hibernate具有的三種檢索方式 ?HQL 檢索方式QBC檢索方式SQL檢索方式42、什么是 IOC,請(qǐng)?jiān)斒??不?chuàng)建對(duì)象 ,但是描述創(chuàng)建它們的方式。在代碼中不直接與對(duì)象和服務(wù)連接,但在配置文件中描述哪一個(gè)組件需要哪一項(xiàng)服務(wù)。容器 (在 Spring框架中是 IOC 容器 ) 負(fù)責(zé)將這些聯(lián)系在一起 。就是由容器控制程序之間的關(guān)系 ,而非傳統(tǒng)實(shí)現(xiàn)中 ,由程序代碼直接操控 ,

38、控制權(quán)由應(yīng)用代碼中轉(zhuǎn)到了外部容器 ,控制權(quán)的轉(zhuǎn)移 ,就是所謂的反轉(zhuǎn) 。43、什么是 AOP ,請(qǐng)?jiān)斒??是面向切面編程?AOP 把軟件系統(tǒng)分為兩個(gè)部分:核心關(guān)注點(diǎn)和橫切關(guān)注點(diǎn)。所謂的核心關(guān)注點(diǎn) ,是業(yè)務(wù)處理的主要流程,也就是說這個(gè)解決方案要做的事。所謂橫切關(guān)注點(diǎn),是與核心業(yè)務(wù)無關(guān)的部分,它把常發(fā)生在核心關(guān)注點(diǎn)的多處,而各處基本相似,如日志,事務(wù) ,權(quán)限等。44、Spring 框架的七個(gè)模塊是什么 ?(1) spring AOP -面象切面編程(2)spring DAO -數(shù)據(jù)訪問對(duì)象(3)spring ORM-對(duì)象關(guān)系影射(4)spring Contect -上下文配置 ,向 Spring 框架提供上下文信息(5)spring WEB - -WEB上下文模塊(6)spring WEB-MVC -實(shí)現(xiàn)了 MVC(7)spring CORE核心容器提供Spring 框架基本功能45、Spring 的注入方

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論