版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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ù)庫中 ,當然也可以存儲 在磁盤文件中、XML數(shù)據(jù)文件中等等。3、簡述一下ORMAPPING,為什么我們使用它?ORM(Object Relatio nal Map pi ng) 是一種為了解決面向?qū)ο笈c關(guān)系型數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù)。簡單說:ORM是通過使用
2、描述對象和數(shù)據(jù)庫之間 映射的元數(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對象的實例,同時是生成S
3、ession對象實例的工廠,他在 整個應(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、序列化以某種存儲形式使
4、自定義對象持久化2、序列化將對象轉(zhuǎn)換為可傳輸方式從一個地方傳遞到另一個地方3、序列化使程序更具維護性6、 比較一下 session Factory 中的 opensession()禾口getcurrentsession()方法1、getCurrentSession創(chuàng)建的session會和綁定到當前線程,而openSession不 會。2、getCurrentSession創(chuàng)建的線程會在事務(wù)回滾或事物提交后自動關(guān)閉,而 openSession必須手動關(guān)閉7、比較一下session中的load ()和get ()方法,以及如何保證每次都是從數(shù)據(jù)庫讀取而不是在緩存中讀?load ()和get ()方
5、法均可以根據(jù)指定的實體類和id從數(shù)據(jù)庫讀取記錄,并 返回與之對應(yīng)的實體對象。其區(qū)別在于:如果未能發(fā)現(xiàn)符合條件的記錄,get方法返回null,而load方法 會拋出一個 ObjectNotFoundException 。Load方法可返回實體的代理類實例,而get方法永遠直接返回實體類。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ù);2. Domain modal(域模型
6、)接收參數(shù);3.Modaldriven接收參數(shù)。常用第一種跟第二種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)?哪些
7、是客戶端跳轉(zhuǎn)?dispatcher和chain是服務(wù)器端跳轉(zhuǎn),所以客戶端只發(fā)起一次請求redirect和redirectAction是客戶端跳轉(zhuǎn),所以客戶端發(fā)起兩次請求。11、 j2ee是技術(shù)還是平臺還是框架?它主要包含哪些技術(shù),列舉并 簡單描述2到3個技術(shù)?J2EE本身是一個標準,一個為企業(yè)分布式應(yīng)用的開發(fā)提供的標準平臺 。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)用遠程對象上的方法。它使用了序列
8、化方式在客戶端和服務(wù)器 端傳遞數(shù)據(jù)。RMI是一種被EJB使用的更底層的協(xié)議。12、 MVC的各個部分都有哪些技術(shù)來實現(xiàn)?如何實現(xiàn)?MVC是Model View Controller的簡寫。"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公司
9、提供的一種標準的Java命名系統(tǒng)接口 , JNDI提供統(tǒng)一的客 戶端API,通過不同的訪問提供者接口 JNDI SPI的實現(xiàn),由管理者將JNDI API 映射為特定的命名服務(wù)和目錄系統(tǒng),使得Java應(yīng)用程序可以和這些命名服務(wù)和 目錄服務(wù)之間進行交互。14、舉例并簡單描述2到3種動態(tài)網(wǎng)頁開發(fā)技術(shù)。1、PHP,是英文超文本預處理語言 Hypertext Preprocessor 的縮寫。PHP是 一種HTML內(nèi)嵌式的語言,是一種在服務(wù)器端執(zhí)行的嵌入 HTML文檔的腳本語 言,語言的風格有類似于C語言,被廣泛地運用。2、ASP,它是微軟公司開發(fā)的代替 CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫 和其它
10、程序進行交互,是一種簡單、方便的編程工具。ASP的網(wǎng)頁文件的格式 是.asp,現(xiàn)在常用于各種動態(tài)網(wǎng)站中。15、簡單描述瀏覽器輸入http:/localhost:8088/myFirstweb/Firstservlet訪問 web 資源的過程(也就是servlet工作的時序圖)(提示,解釋地址-用端口號 和地址訪問服務(wù)器-訪問資源)。1. 瀏覽器會將請求打包成http請求數(shù)據(jù)包,發(fā)送給web服務(wù)器,2. web服務(wù)器中的servlet引擎解析請求并圭寸裝為一個 HttpServletRequest對 象(包含了請求數(shù)據(jù)),同時創(chuàng)建個HttpServletResponse 對象。3. servle
11、t 調(diào)用 servlet 的 service()方法,并將 HttpServletReque , HttpServletResponse 對象作為參數(shù)傳遞給 servlet實例4. servlet可以從HttpServletRequest對象中獲得請求數(shù)據(jù),并處理,當然, servlet也可能要訪問數(shù)據(jù)庫。然后將處理之后的結(jié)果放到HttpServletResponse 中。5. servlet引擎從HttpServletResponse 中取數(shù)據(jù),并將數(shù)據(jù)打包成http數(shù)據(jù) 包發(fā)送給瀏覽器。16、開發(fā)servlet服務(wù)器程序三種方法。開發(fā)servlet有三種方法:a,實現(xiàn)servlet接口 ;
12、 b,繼承GenericServet; c,繼承 HttpServlet17、通過 httpservlet 去開發(fā) servlet,需要重寫 doGet 和 doPost 方法。這是常用的方式,請簡述Get與Post方法的區(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ù)最多
13、只能有1024字節(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伺服器遇到了一個未曾預料的狀況,導致了它無法完成對請求的處理.19、簡述請求重定向(response.sendRedirect )和請求轉(zhuǎn)發(fā)(getRequestDispatcher forward )的
14、區(qū)另U。1、 forward。只能將請求轉(zhuǎn)發(fā)給同一個 Web應(yīng)用中的組件,而sendRedirect() 方法不僅可以重定向到當前應(yīng)用程序中的其他資源 ,還可以重定向到其他站點 的資源。2、 sendRedirect()方法重定向的訪問過程結(jié)束后,瀏覽器地址欄中顯示的URL 會發(fā)生改變,由初始的URL地址變成重定向的目標URL;而調(diào)用forward()方 法的請求轉(zhuǎn)發(fā)過程結(jié)束后,瀏覽器地址欄保持初始的URL地址不變3、forward。方法的調(diào)用者與被調(diào)用者之間共享相同的request對象和response對象;而sendRedirect()方法調(diào)用者和被調(diào)用者使用各自的request對象和re
15、sponse對象,它們屬于兩個獨立的請求和響應(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. 當前聯(lián)接太多了,服務(wù)器都有訪問人數(shù)限制的8. 服務(wù)器的相應(yīng)端口沒有開,即它不提供相應(yīng)的服務(wù)9 hibernate有哪些緩存,分別怎么使用?10你對hibernate的了解到了一個什么樣的程度?11寫出一個sql語句體現(xiàn)hibernate中一對多的關(guān)系21、Update ()和 saveOrUpd
16、ate ()的區(qū)別?update()方法操作的對象必須是持久化了的對象。也就是說,如果此對象在數(shù) 據(jù)庫中不存在的話,就不能使用update()方法。saveOrUpdate()方法操作的對象既可以使持久化了的,也可以使沒有持久化的 對象。如果是持久化了的對象調(diào)用saveOrUpdate()則會更新數(shù)據(jù)庫中的對象;如果是未持久化的對象使用此方法,則save到數(shù)據(jù)庫 中。22、Hibernate的三種狀態(tài)之間如何轉(zhuǎn)換?當對象由瞬時狀態(tài)(Transient) save()時,就變成了持久化狀態(tài)。當我們在 Session里存儲對象的時候,實際是在Session的Map里存了一份,也就是它 的緩存里放了
17、一份,然后,又到數(shù)據(jù)庫里存了一份,在緩存里這一份叫持久對 象(Persistent)。 Session 一 Close() 了,它的緩存也都關(guān)閉了,整個 Session 也 就失效了 ,這個時候,這個對象變成了游離狀態(tài)(Detached),但數(shù)據(jù)庫中還是 存在的。當游離狀態(tài)(Detached)update()時,又變?yōu)榱顺志脿顟B(tài)(Persistent)。當持久狀態(tài)(Persistent)delete()時,又變?yōu)榱怂矔r狀態(tài)(Transient),此時,數(shù)據(jù)庫 中沒有與之對應(yīng)的記錄。23、工廠模式?工廠模式主要是為創(chuàng)建對象提供了接口。工廠模式按照Java與模式中的提法分為三類:1.簡單工廠模式(
18、Simple Factory) 2.工廠方法模式(Factory Method) 3. 抽象工 廠模式(Abstract Factory)這三種模式從上到下逐步抽象,并且更具一般性。還有一種分類法,就是將簡 單工廠模式看為工廠方法模式的一種特例,兩個歸為一類。下面是使用工廠模 式的兩種情況:1.在編碼時不能預見需要創(chuàng)建哪種類的實例。2系統(tǒng)不應(yīng)依賴于產(chǎn)品類實例如何 被創(chuàng)建、組合和表達的細節(jié)24、抽象類和接口的區(qū)別?接口是公開的,里面不能有私有的方法或變量,是用于讓別人使用的,而抽象類是可以有私有方法或私有變量的,另外,實現(xiàn)接口的一定要實現(xiàn)接口里定義的所有方法,而實現(xiàn)抽象類可以有選擇地重寫需要用到
19、的方法,一般的應(yīng)用里,最頂級的是接口 ,然后是抽象類實現(xiàn)接口 ,最后才到具體類實現(xiàn)。還有,接口可以實現(xiàn)多重繼承,而一個類只能繼 承一個超類,但可以通過繼承多個接口實現(xiàn)多重繼承,接口還有標識 (里面沒有任何方法,如Remote接口)和數(shù)據(jù)共享(里面的變量全是常量)的作用.25、Forward 和 redirect 的區(qū)別?forward是服務(wù)器請求資源,服務(wù)器直接訪問目標地址的URL,把那個URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器,瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來的,所以它的地址欄中還是原來的地址。redirect就是服務(wù)端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個
20、地址,一般來說瀏覽器會用剛才請求的所有參數(shù)重新請求,所以session,request參數(shù)都可以獲取。26、持久化對象的三種狀態(tài),代表含義?瞬時態(tài):簡單的說就是你在程序里面new 個對象,還沒有和session關(guān)聯(lián)持久態(tài):對象和session有了關(guān)聯(lián),對象處于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ù)對的方式用querystri ng傳遞。2:可以用特定的字符分隔后組成一個字符串,再用一個參數(shù)對的que
21、rystring方式傳遞。3:如果是第三信息的話,可以用在服務(wù)器端的session方式傳遞,一般不用這種方式。因為占服務(wù)器資源。4:也可以用cookie方式傳遞。5:當然還可以用其它的不常的方式傳遞。28、 Struts框架的數(shù)據(jù)驗證可分為幾種類型?表單驗證(由Actio nF orm Bea n處理):如果用戶沒有在表單中輸入姓名,就提交表單,將生成表單驗證錯誤業(yè)務(wù)邏輯驗證(由Action處理):如果用戶在表單中輸入的姓名為“Monster",按照本應(yīng)用的業(yè)務(wù)規(guī)則,不允許向“Monster'打招呼,因此將生成業(yè)務(wù)邏輯錯誤。29、 寫一個Singleton模式的例子?publ
22、ic class Sin glet onprivate static final Singleton singleton = new Singleton();private Sin glet on()public static Sin glet on get In sta nce()retur n sin glet on;30、談?wù)勀鉓VC的理解?MVC 是一種設(shè)計模式,它強制的將應(yīng)用程序的輸入、處理、和輸出分開。使用了MVC的應(yīng)用程序被分為 3個核心部件:試圖(View)、模型(Model)、控制器(Co ntroller)。它 們各司其職,既分工明確又相互合作。首先視圖接受用戶輸入請求,然
23、后將請求傳遞給控制器,控制器再調(diào)用某個模型來處理用戶的請求,在控制器的控制下,再將處理后的結(jié)果交給某個視圖進行格式化輸出給用戶這是經(jīng)典的MVC設(shè)計執(zhí)行的基本流程。MVC不僅實現(xiàn)了功能模塊和顯示模塊的分離,同時它還提高了系統(tǒng)的可維護性、可擴展性和組件的可 復用性,是一個優(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、項目中
24、為什么使用 SSH?1.使用Struts是因為struts是基于MVC模式的,很好的將應(yīng)用程序進行了分 層,使開發(fā)者更關(guān)注于業(yè)務(wù)邏輯的實現(xiàn);第二,struts有著豐富的taglib,如能 靈活運用,則能大大提高開發(fā)效率。2. 使用Hibernate :因為hibernate為Java應(yīng)用提供了一個易用的、高效率的對象關(guān)系映射框架。hibernate是個輕量級的持久性框架,功能豐富。3. 使用 Spring :因為 spring 基于 loC(lnversion of Control ,反向控制)和 AOP 構(gòu)架多層j2ee系統(tǒng)的框架,但它不強迫你必須在每一層中必須使用 Spring,因 為它模
25、塊化的很好,允許你根據(jù)自己的需要選擇使用它的某一個模塊 ; 采用loC使得可以很容易的實現(xiàn)bean的裝配,提供了簡潔的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 的
26、Action是多例模式的。33、Hibernate 與 jdbc 的聯(lián)系?hibernate是jdbc的輕量級圭寸裝,包括jdbc的與數(shù)據(jù)庫的連接(用 perty 的配置文件實現(xiàn)當然本質(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 setld(Long id);然后 hql語句也是面向?qū)ο蟮?,它的查詢語句不是查詢數(shù)據(jù)庫而是
27、查詢類的,這些實現(xiàn)的 魔法就是xml文件,其實hibernate=圭寸裝的jdbc+xml文件34、一般用spring做什么?Spring是一個解決了許多在J2EE開發(fā)中常見的問題的強大框架。Spring提供 了管理業(yè)務(wù)對象的一致方法并且鼓勵了注入對接口編程而不是對類編程的良好 習慣。Spring的架構(gòu)基礎(chǔ)是基于使用 JavaBea n屬性的In version of Co ntrol容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構(gòu)建完 關(guān)注所有架構(gòu)層的完整解決方案方面是獨一無二的。Spring提供了唯一的數(shù)據(jù)訪問抽象,包括簡單和有效率的JDBC框架,極大的改進了效率
28、并且減少了可 能的錯誤。Spring的數(shù)據(jù)訪問架構(gòu)還集成了 Hibernate和其他O/R mapping 解決方案。Spring還提供了唯一的事務(wù)管理抽象,它能夠在各種底層事務(wù)管理 技術(shù),例如JTA或者JDBC事務(wù)提供一個一致的編程模型。Spring提供了一個 用標準Java語言編寫的AOP框架,它給POJOs提供了聲明式的事務(wù)管理和其 他企業(yè)事務(wù)-如果你需要-還能實現(xiàn)你自己的aspects。這個框架足夠強大,使 得應(yīng)用程序能夠拋開EJB的復雜性,同時享受著和傳統(tǒng)EJB相關(guān)的關(guān)鍵服務(wù)。 Spring還提供了可以和loC容器集成的強大而靈活的 MVC Web框架。35、C/S與B/S的區(qū)別?C
29、/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ù)庫的交互(通常是SQL或存儲過 程的實現(xiàn))來達到持久化數(shù)據(jù),以此滿足實際項目的需要。B/S架構(gòu)的全稱為Browse
30、r/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 上,這樣就避免了龐大的 胖客 戶端,減少了客戶端的壓力。因為客戶端包含的邏輯很少,因此也被成為瘦客36、J2EE常用的設(shè)計模式?說明工廠模式?Java中的23種設(shè)計模式:Factory (工廠模式),Builder (建造模式)Factory Method (工廠方
31、法模 式),Prototype (原始模型模式),Singleton (單例模式),F(xiàn)acade (門面 模式),Adapter (適配器模式),Bridge (橋梁模式),Composite (合成 模式),Decorator (裝飾模式),F(xiàn)lyweight (享元模式),Proxy (代理模 式),Comma nd (命令模式),In terpreter (解釋器模式),Visitor (訪問 者模式),Iterator (迭代子模式),Mediator (調(diào)停者模式),Memento(備忘錄模式),Observer (觀察者模式),State (狀態(tài)模式),Strategy(策略模式)
32、,Template Method(模板方法模式),Cha in OfResponsibleity (責任鏈模式)工廠模式:工廠模式是一種經(jīng)常被使用到的模式,根據(jù)工廠模式實現(xiàn)的類可以 根據(jù)提供的數(shù)據(jù)生成一組類中某一個類的實例 ,通常這一組類有一個公共的抽 象父類并且實現(xiàn)了相同的方法,但是這些方法針對不同的數(shù)據(jù)進行了不同的操 作。首先需要定義一個基類,該類的子類通過不同的方法實現(xiàn)了基類中的方 法。然后需要定義一個工廠類,工廠類可以根據(jù)條件生成不同的子類實例。當 得到子類的實例后,開發(fā)人員可以調(diào)用基類中的方法而不必考慮到底返回的是 哪一個子類的實例。37、BeanFactory的作用是什么?Bean
33、Factory提供的高級配置機制,使得管理任何性質(zhì)的對象成為可能。在Spring中,BeanFactory是loC容器的核心接口 。它的職責包括:實例化、定 位、配置應(yīng)用程序中的對象及建立這些對象間的依賴。Spring為我們提供了許多易用的BeanFactory實現(xiàn),XmlBeanFactory就是最常用的一個。該實現(xiàn)將以 XML方式描述組成應(yīng)用的對象以及對象間的依賴關(guān)系。XmlBeanFactory類將持有此XML配置元數(shù)據(jù),并用它來構(gòu)建一個完全可配置的系統(tǒng)或應(yīng)用。Ajax的工作原理?通過javascript的方式,將前臺數(shù)據(jù)通過xmlhttp對象傳遞到后臺,后臺在接 收到請求后,將需要的結(jié)
34、果,再傳回到前臺,這樣就可以實現(xiàn)不需要頁面的回 發(fā),頁是數(shù)據(jù)實現(xiàn)來回傳遞,從頁實現(xiàn)無刷新。39、何為容器?容器是一個Java所編寫的程序,原先必須自行編寫程序以管理對象關(guān)系,現(xiàn)在容器都會自動幫您作好。常用容器 WebSphere ,WebLogic ,Resin,Tomcat40、Spring配置文件中的ref元素的作用是什么?它的兩個基本屬 性是什么?用于指定屬性值為spring容器中的其它bean.兩個基本屬性是bean和local41、Hibernate具有的三種檢索方式?HQL檢索方式 QBC檢索方式SQL檢索方式42、什么是IOC,請詳述?不創(chuàng)建對象,但是描述創(chuàng)建它們的方式 。在代碼
35、中不直接與對象和服務(wù)連接,但在配置文件中描述哪一個組件需要哪一項服務(wù)。容器(在Spring框架中是IOC容器)負責將這些聯(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ù)處理的主要流程,也就是說這個解決方案要做的事 。所謂橫切關(guān)注 點,是與核心業(yè)務(wù)無關(guān)的部分,它把常發(fā)生在核心關(guān)注點的多處 ,而各處基本相似,如日 志,事務(wù),權(quán)限等。44、Spring框架的七個模塊是什么?(1)
36、spri ng AOP - 面象切面編程(2) spri ng DAO - 數(shù)據(jù)訪問對象(3) spri ng ORM - 對象關(guān)系影射(4) spring Contect -上下文配置,向Spring框架提供上下文信息(5) spri ng WEB - -WEB上下文模塊(6) spring WEB-MVC - 實現(xiàn)了 MVC(7) spring CORE -核心容器提供Spring框架基本功能45、Spring的注入方式有哪幾種?1. 接口注入(不推薦)2. getter , setter方式注入(比較常用)3. 構(gòu)造器注入(死的應(yīng)用)接口注入模式因為具備侵入性,它要求組件必須與特定的接口相關(guān)聯(lián),因此并不被看好,實際使用有限。Setter 注入:對于習慣了傳統(tǒng)javabean開發(fā)的程序員,通過setter方法設(shè)定依賴關(guān)系更加直觀。如果 依賴關(guān)系較為復雜,那么構(gòu)造子注入模式的構(gòu)造函數(shù)也會相當龐大,而此時設(shè)值注入模式則更為簡潔。如果用到了第三方類庫,可能要求我們的組件提供一個默認的構(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)用者而言,該依
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 6583:2024 EN Methanol as a fuel for marine applications - General requirements and specifications
- 2024廣東省林地流轉(zhuǎn)買賣合同
- 2024法律顧問委托合同
- 2024民間抵押借款合同民間借貸合同范本
- 2024房屋裝修合同(范本)
- 新車銷售合同范本樣式
- 不動產(chǎn)抵押借款合同范本解析
- 2024蔬菜買賣合同示范文本
- 2024年墻面裝飾分包工程合同
- 合租住房協(xié)議書樣本
- 風機塔筒內(nèi)電梯管理規(guī)定
- 冀教版五年級上冊數(shù)學基本功訓練電子版
- F500-1000泥漿泵說明書
- 醫(yī)療器械售后服務(wù)記錄表
- 《上步投擲沙包(壘球)》教學課件
- 2023年重慶中考英語短文填空真題含答案
- 大學體育與健康知到章節(jié)答案智慧樹2023年吉林師范大學
- 機械專業(yè)大學生的職業(yè)生涯規(guī)劃
- 電氣工程及其自動化職業(yè)生涯規(guī)劃
- 《微電影制作教程》第二章
- 《陽光心理健康人生》心理健康主題班會PPT
評論
0/150
提交評論