



下載本文檔
版權(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)象
2、的技術(shù) 。簡單說 : ORM 是通過使用描述對象和數(shù)據(jù)庫之間映射的元數(shù)據(jù) ,將 Java 程序中的對象自動持久化到關(guān)系數(shù)據(jù)中 。 本質(zhì)上就是將數(shù)據(jù)從一種形式轉(zhuǎn)換到另外一種形式 。原因:用它來架起對象和關(guān)系型數(shù)據(jù)庫的橋梁 ,可解決對象層次的映射 、對象關(guān)系的映射以及對象的持久化問題 。4、簡述一下如何使用 Hibernate 實現(xiàn)對象持久化的過程 (可畫圖或用偽碼描述 ).專業(yè)專注.STEP 1:創(chuàng)建 Configuration 對象 。在這一步中主要為了進行配置文件的裝載操作,讀取所有的配置文件并進行解析 、STEP 2: 創(chuàng)建 SessionFactory 對象 。通過創(chuàng)建好的 Config
3、uration 對象可以創(chuàng)建一個 sessionFactory 對象的實例 ,同時是生成 Session 對象實例的工廠 ,他在整個應(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ù) 。在操作完
4、成之后還要進行顯式的結(jié)束事務(wù)的操作。STEP 7:關(guān)閉 Session。類似于釋放數(shù)據(jù)庫的連接。5、為什么要實現(xiàn)序列化 ?1、序列化以某種存儲形式使自定義對象持久化2、序列化將對象轉(zhuǎn)換為可傳輸方式從一個地方傳遞到另一個地方3、序列化使程序更具維護性6、比較一下 sessionFactory中的 opensession ()和getcurrentsession()方法1、getCurrentSession 創(chuàng)建的 session 會和綁定到當(dāng)前線程 ,而 openSession 不會。.專業(yè)專注.2 、 getCurrentSession 創(chuàng)建的線程會在事務(wù)回滾或事物提交后自動關(guān)閉 ,而 ope
5、nSession 必須手動關(guān)閉7、比較一下 session 中的 load ()和 get ()方法,以及如何保證每次都是從數(shù)據(jù)庫讀取而不是在緩存中讀 ?load ()和 get ()方法均可以根據(jù)指定的實體類和 id 從數(shù)據(jù)庫讀取記錄 ,并返回與之對應(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ù)
6、查找 ,如沒有發(fā)現(xiàn)對應(yīng)數(shù)據(jù) ,將越過二級緩存 ,直接調(diào)用 SQL 完成數(shù)據(jù)讀取 。8、Action 接受用戶參數(shù)輸入 ,主要有哪幾種方式 ?我們常用的是哪一種?1.Action 屬性接收參數(shù) ; 2 Domain modal(域模型 )接收參數(shù) ; 3.Modaldriven 接收參數(shù) 。常用第一種跟第二種9、在 struts 中實現(xiàn)一個 action有哪幾種方式 ?最常用的是哪種 ?1定義一個普通的類 ,類中只要有一個 public String execute() 方法且返回一個字符串即可 。2.定義一個類 ,實現(xiàn) Action 接口,xwork2.Action這個包的3 繼承 xwork
7、2.ActionSupport這個類。最常用的是第三種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ā)起一次請求redirect 和 redirectAction是客戶端跳轉(zhuǎn) ,所以客戶端發(fā)起兩次請求。11 、j2ee 是技術(shù)還是平臺還是框架 ?它主要包含哪些技術(shù) ,列舉并簡單描述 2到 3個技術(shù)?J2EE本身是一個標(biāo)準(zhǔn) ,一個為企業(yè)分布式
8、應(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 的各個部分都有哪些技術(shù)來實現(xiàn)?如何實現(xiàn) ?MVC 是 Model View Controller 的簡寫 。 "Model" 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過
9、 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 的實現(xiàn),由管理者將 JNDI API 映射為特定的命名服務(wù)和目錄系統(tǒng) ,使得 Java 應(yīng)用程序可
10、以和這些命名服務(wù)和目錄服務(wù)之間進行交互 。14 、舉例并簡單描述2 到 3 種動態(tài)網(wǎng)頁開發(fā)技術(shù) 。.專業(yè)專注.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:/localhos
11、t: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 對象
12、作為參數(shù)傳遞給 servlet 實例4 servlet 可以從 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 、通過 httpserv
13、let 去開發(fā) servlet, 需要重寫 doGet 和 doPost 方法 。這是常用的方式 ,請簡述 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)對于 get 方式,服務(wù)器端用 Request.QueryString 獲取變量的值 ,對于post 方式,服務(wù)器端用 Request.Form 獲取提交的數(shù)據(jù) 。( 3) GET方式提交的數(shù)據(jù)最多只能有 1024 字
14、節(jié),而 POST 則沒有此限制 。( 4)安全性問題 。使用 Get 的時候,參數(shù)會顯示在地址欄上 ,而 Post 不會 。所以,還是使用 post 為好 。18 、簡述 http返回包中的狀態(tài)碼200 ,302 ,404 ,500 的意義 。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ā)(getReque
15、stDispatcher forward)的區(qū)別。1、forward() 只能將請求轉(zhuǎn)發(fā)給同一個Web 應(yīng)用中的組件 ,而 sendRedirect()方法不僅可以重定向到當(dāng)前應(yīng)用程序中的其他資源,還可以重定向到其他站點的資源。2、sendRedirect() 方法重定向的訪問過程結(jié)束后 ,瀏覽器地址欄中顯示的 URL 會發(fā)生改變 ,由初始的 URL 地址變成重定向的目標(biāo) URL;而調(diào)用 forward() 方法的請求轉(zhuǎn)發(fā)過程結(jié)束后 ,瀏覽器地址欄保持初始的 URL 地址不變 。.專業(yè)專注.3、forward() 方法的調(diào)用者與被調(diào)用者之間共享相同的request 對象和response 對象
16、;而 sendRedirect() 方法調(diào)用者和被調(diào)用者使用各自的 request 對象和 response 對象,它們屬于兩個獨立的請求和響應(yīng)過程 。20 、Hibernate拒絕連接 、服務(wù)器崩潰的原因 ?最少寫三個 ?1. db 沒有打開2. 網(wǎng)絡(luò)連接可能出了問題3. 連接配置錯了4. 驅(qū)動的 driver , url 是否都寫對了5. 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
17、 的了解到了一個什么樣的程度?11 寫出一個 sql 語句體現(xiàn) hibernate 中一對多的關(guān)系21 、Update ()和 saveOrUpdate ()的區(qū)別?update() 方法操作的對象必須是持久化了的對象 。也就是說 ,如果此對象在數(shù)據(jù)庫中不存在的話 ,就不能使用 update() 方法 。saveOrUpdate() 方法操作的對象既可以使持久化了的 ,也可以使沒有持久化的對象 。如果是持久化了的對象調(diào)用 saveOrUpdate() 則會更新數(shù)據(jù)庫中的對象 ;如果是未持久化的對象使用此方法 ,則 save 到數(shù)據(jù)庫中。.專業(yè)專注.22 、Hibernate的三種狀態(tài)之間如何轉(zhuǎn)
18、換?當(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ù)庫中還是存在的 。 當(dāng)游離狀態(tài) (Detached)update() 時,又變?yōu)榱顺志脿顟B(tài) (Persistent) 。當(dāng)持久狀態(tài) (P
19、ersistent)delete() 時,又變?yōu)榱怂矔r狀態(tài) (Transient), 此時,數(shù)據(jù)庫中沒有與之對應(yīng)的記錄 。23、工廠模式 ?工廠模式主要是為創(chuàng)建對象提供了接口 。工廠模式按照 Java 與模式中的提法分為三類 :1. 簡單工廠模式 (Simple Factory) 2. 工廠方法模式 (Factory Method) 3. 抽象工廠模式 (Abstract Factory)這三種模式從上到下逐步抽象 ,并且更具一般性 。還有一種分類法 ,就是將簡單工廠模式看為工廠方法模式的一種特例 ,兩個歸為一類 。下面是使用工廠模式的兩種情況 :1.在編碼時不能預(yù)見需要創(chuàng)建哪種類的實例 。2
20、.系統(tǒng)不應(yīng)依賴于產(chǎn)品類實例如何被創(chuàng)建、組合和表達的細(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ù)共享 (里面的變量全是常量)的作用 .25、Forward和 redirect的區(qū)別?
21、forward 是服務(wù)器請求資源 ,服務(wù)器直接訪問目標(biāo)地址的 URL,把那個 URL 的響應(yīng)內(nèi)容讀取過來 ,然后把這些內(nèi)容再發(fā)給瀏覽器 ,瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來.專業(yè)專注.的,所以它的地址欄中還是原來的地址。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) ,對象處于hibernat
22、e框架管理中游離態(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ù)驗證可
23、分為幾種類型?表單驗證 (由 ActionForm Bean處理): 如果用戶沒有在表單中輸入姓名,就提交表單 ,將生成表單驗證錯誤業(yè)務(wù)邏輯驗證 (由 Action 處理 ):如果用戶在表單中輸入的姓名為“Monster ”,按照本應(yīng)用的業(yè)務(wù)規(guī)則 ,不允許向 “Monster ”打招呼 ,因此將生成業(yè)務(wù)邏輯錯誤。29、寫一個 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è)計模式,它強制的將應(yīng)用程序的輸入、處理、和輸出分開 。 使用了MVC 的應(yīng)用程序被分為3 個核心部件 :試圖 (View) 、模型 (Model) 、控制器 (Controller)。它們各司其職 ,既分工明確又相互合作。 首先視圖接受用戶輸入請求,然后將請求傳遞給控制器 ,控制器再調(diào)用某個模型來處理用戶的請求,在控制器的控制下 ,再將處理后的結(jié)果交給某個視圖進行格式化輸出給用戶.這是經(jīng)典的 MVC 設(shè)計執(zhí)行的基本流程 。 MVC 不僅實現(xiàn)了功能模塊和顯示模塊的分離,同時
25、它還提高了系統(tǒng)的可維護性、可擴展性和組件的可復(fù)用性 ,是一個優(yōu)秀的創(chuàng)建軟件的途徑。 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 有著
26、豐富的 taglib, 如能靈活運用 ,則能大大提高開發(fā)效率 。2. 使用 Hibernate :因為 hibernate 為 Java 應(yīng)用提供了一個易用的 、高效率的對象關(guān)系映射框架 。hibernate 是個輕量級的持久性框架 ,功能豐富 。3. 使用 Spring :因為 spring 基于 IoC(Inversion of Control,反向控制 )和 AOP構(gòu)架多層 j2ee 系統(tǒng)的框架 ,但它不強迫你必須在每一層中必須使用Spring ,因為它模塊化的很好 ,允許你根據(jù)自己的需要選擇使用它的某一個模塊;.專業(yè)專注.采用 IoC 使得可以很容易的實現(xiàn) bean 的裝配,提供了簡潔
27、的 AOP 并據(jù)此實現(xiàn)事務(wù)管理 (Transcation Managment), 等等32、在 Struts2 中,action 是單實例還是多實例 ,為什么?struts 2 的 Action 是多實例的并非單例 ,也就是每次請求產(chǎn)生一個 Action 的對象 。原因是 : struts 2 的 Action 中包含數(shù)據(jù) ,例如你在頁面填寫的數(shù)據(jù)就會包含在 Action 的成員變量里面 。如果 Action 是單實例的話 ,這些數(shù)據(jù)在多線程的環(huán)境下就會相互影響 ,例如造成別人填寫的數(shù)據(jù)被你看到了 。所以 Struts2 的 Action 是多例模式的 。33 、Hibernate與 jdbc
28、 的聯(lián)系?hibernate 是 jdbc的輕量級封裝 ,包括 jdbc 的與數(shù)據(jù)庫的連接 (用perty的配置文件實現(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ù)庫而是查詢類的,這些實現(xiàn)的魔法就是 xml 文件,其實
29、 hibernate= 封裝的 jdbc+xml文件34、一般用 spring 做什么?Spring 是一個解決了許多在 J2EE開發(fā)中常見的問題的強大框架 。 Spring 提供了管理業(yè)務(wù)對象 的一致方法并且鼓勵了注入對接口編程而不是對類編程的良好習(xí)慣 。Spring 的架構(gòu)基礎(chǔ)是基于使用 JavaBean 屬性的 Inversion of Control 容器 。然而 ,這僅僅是完整圖景中的一部分 :Spring 在使用 IoC 容器作為構(gòu)建完關(guān)注所有架構(gòu)層的完整解決方案方面是獨一無二的 。 Spring 提供了唯一的數(shù)據(jù)訪問抽象 ,包括簡單和有效率的 JDBC 框架,極大的改進了效率并且
30、減少了可能的錯誤 。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)你自己的 aspects 。這個框架足夠強大 ,使.專業(yè)專注.得應(yīng)用程序能夠拋開EJB的復(fù)雜性 ,同時享受著和傳統(tǒng)EJB相關(guān)的關(guān)鍵服務(wù) 。Spring 還提供了可以和IoC 容器集成的強大而靈
31、活的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ù)邏輯和界面展示 。 這種架構(gòu)中 ,作為客戶端的部分需要承受很大的壓力 ,因為顯示邏輯和事務(wù)處理都包含在其中 ,通過與數(shù)據(jù)庫的交互 (
32、通常是 SQL 或存儲過程的實現(xiàn) )來達到持久化數(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 上,這樣就避免了龐大的 胖客戶端,減少了客戶端的壓力 。因為客戶端包含的邏輯很少 ,因此也被成為 瘦客戶
33、端。36、J2EE 常用的設(shè)計模式 ?說明工廠模式 ?Java 中的 23 種設(shè)計模式 :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ù)工廠模式實現(xiàn)的類可以根據(jù)提供的數(shù)據(jù)生成一組類中某一個類的實例 ,通常這一組類有一個公共的抽象父類并且實現(xiàn)了相同的方法 ,但是這些方法針對不同的數(shù)據(jù)進行了不同的操作。首先需
35、要定義一個基類 ,該類的子類通過不同的方法實現(xiàn)了基類中的方法。然后需要定義一個工廠類 ,工廠類可以根據(jù)條件生成不同的子類實例 。 當(dāng)?shù)玫阶宇惖膶嵗?,開發(fā)人員可以調(diào)用基類中的方法而不必考慮到底返回的是哪一個子類的實例 。37、BeanFactory的作用是什么 ?BeanFactory 提供的高級配置機制 ,使得管理任何性質(zhì)的對象成為可能 。在 Spring 中,BeanFactory 是 IoC 容器的核心接口 。它的職責(zé)包括 :實例化、定位、配置應(yīng)用程序中的對象及建立這些對象間的依賴。 Spring 為我們提供了許多易用的 BeanFactory 實現(xiàn),XmlBeanFactory 就是
36、最常用的一個 。該實現(xiàn)將以XML 方式描述組成應(yīng)用的對象以及對象間的依賴關(guān)系 。XmlBeanFactory 類將持有此 XML 配置元數(shù)據(jù) ,并用它來構(gòu)建一個完全可配置的系統(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 ,
37、Resin,Tomcat40、Spring 配置文件中的 ref 元素的作用是什么 ?它的兩個基本屬性是什么 ?.專業(yè)專注.用于指定屬性值為spring 容器中的其它 bean. 兩個基本屬性是bean 和 local41、Hibernate具有的三種檢索方式 ?HQL 檢索方式QBC檢索方式SQL檢索方式42、什么是 IOC,請詳述?不創(chuàng)建對象 ,但是描述創(chuàng)建它們的方式。在代碼中不直接與對象和服務(wù)連接,但在配置文件中描述哪一個組件需要哪一項服務(wù)。容器 (在 Spring框架中是 IOC 容器 ) 負(fù)責(zé)將這些聯(lián)系在一起 。就是由容器控制程序之間的關(guān)系 ,而非傳統(tǒng)實現(xiàn)中 ,由程序代碼直接操控 ,
38、控制權(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ù)處理的主要流程,也就是說這個解決方案要做的事。所謂橫切關(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護工培訓(xùn)方案(3篇)
- 礦山瞞報事故方案(3篇)
- 別墅查封拆除方案(3篇)
- DB23-T2896-2021-青貯玉米機械化收貯技術(shù)規(guī)程-黑龍江省
- 制定關(guān)于車輛管理制度
- 國企財會日常管理制度
- 小學(xué)線上上課管理制度
- 醫(yī)療養(yǎng)老服務(wù)管理制度
- 商業(yè)銀行內(nèi)部管理制度
- 化學(xué)藥劑熏蒸管理制度
- 2025+CSCO婦科腫瘤診療指南解讀
- 全國高中數(shù)學(xué)說課大賽教學(xué)設(shè)計一等獎作品合輯
- 山東省德州市慶云縣2024-2025學(xué)年下學(xué)期七年級期中考試生物試題(含答案)
- 銀華紹興原水水利REIT:銀華紹興原水水利封閉式基礎(chǔ)設(shè)施證券投資基金2024年度資產(chǎn)評估報告
- 2025至2030年中國聚己內(nèi)酯(PCL)行業(yè)深度調(diào)研與投資戰(zhàn)略咨詢報告
- 2025年部編版新教材語文一年級下冊期末復(fù)習(xí)計劃及全冊單元復(fù)習(xí)課教案
- 訂單處理流程優(yōu)化方案說明
- 超聲基本原理和臨床應(yīng)用
- 集體委托個人委托書范本
- 早自習(xí)遲到檢討書綜合(總結(jié)19篇)
- 中考語文試卷名著閱讀專題匯編《艾青詩選》詩歌賞析題(截至2024年)
評論
0/150
提交評論