{za}設(shè)計模式面試題507_第1頁
{za}設(shè)計模式面試題507_第2頁
{za}設(shè)計模式面試題507_第3頁
{za}設(shè)計模式面試題507_第4頁
{za}設(shè)計模式面試題507_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余7頁可下載查看

下載本文檔

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

文檔簡介

1、設(shè)計模式6大原則1、開閉原則(OpenClosePrinciple)開閉原則就是說對擴(kuò)展開放,對修改關(guān)閉。在程序需要進(jìn)行拓展的時候,不能去修改原有的代碼,實(shí)現(xiàn)一個熱插拔的效果。所以一句話概括就是:為了使程序的擴(kuò)展性好,易于維護(hù)和升級。想要達(dá)到這樣的效果,我們需要使用接口和抽象類,后面的具體設(shè)計中我們會提到這點(diǎn)。.2、里氏代換原則(LiskovSubstitutionPrinciple)里氏代換原則(LiskovSubstitutionPrincipleLSP)面向?qū)ο笤O(shè)計的基本原則之一。里氏代換原則中說,任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。LSP是繼承復(fù)用的基石,只有當(dāng)衍生類可以替換掉基

2、類,軟件單位的功能不受到影響時,基類才能真正被復(fù)用,而衍生類也能夠在基類的基礎(chǔ)上增加新的行為。里氏代換原則是對“開-閉”原則的補(bǔ)充。實(shí)現(xiàn)“開-閉”原則的關(guān)鍵步驟就是抽象化。而基類與子類的繼承關(guān)系就是抽象化的具體實(shí)現(xiàn),所以里氏代換原則是對實(shí)現(xiàn)抽象化的具體步驟的規(guī)范。FromBaidu百科.3、依賴倒轉(zhuǎn)原則(DependenceInversionPrinciple)這個是開閉原則的基礎(chǔ),具體內(nèi)容:真對接口編程,依賴于抽象而不依賴于具體。4、接口隔離原則(InterfaceSegregationPrinciple)這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。還是一個降低類之間的耦合度的

3、意思,從這兒我們看出,其實(shí)設(shè)計模式就是一個軟件的設(shè)計思想,從大型軟件架構(gòu)出發(fā),為了升級和維護(hù)方便。所以上文中多次出現(xiàn):降低依賴,降低耦合。.5、迪米特法則(最少知道原則)(DemeterPrinciple)為什么叫最少知道原則,就是說:一個實(shí)體應(yīng)當(dāng)盡量少的與其他實(shí)體之間發(fā)生相互作用,使得系統(tǒng)功能模塊相對獨(dú)立。.6、合成復(fù)用原則(CompositeReusePrinciple)原則是盡量使用合成/聚合的方式,而不是使用繼承。1、寫出常用的設(shè)計模式,如單例、工廠、裝飾者、觀察者等模式,分別推薦他們運(yùn)用的場景2、關(guān)于標(biāo)準(zhǔn)的JDK庫中使用的一些設(shè)計模式Decorator設(shè)計模式常被用于各種JavaIO

4、類中Singleton模式常被用在運(yùn)行環(huán)節(jié)中,Calendar以及各種其他類Factory(工廠)模式常被用于各種不可變類,比如Boolean。Boolean.valueOfObserver模式常被用于Swing和許多事件監(jiān)聽器框架中。3. 在Java中Singleton設(shè)計模式是什么?為線程安全Singleton編碼。Singleton模式在整個系統(tǒng)中主要是共享模式。在整個應(yīng)用程序?qū)嵗兄槐3忠粋€特定的類,這是由所以模塊共享決定的。Java.lang.Runtime是Singleton設(shè)計模式中一個典型范例。從Java5版本開始,你可以為安全線程singleton模式使用enum.4. 舉例

5、說明你什么時候會用抽象類,什么時候更愿意使用接口?抽象類是一種模板,而接口是一種規(guī)范在Java中,你只能繼承一個類,但實(shí)現(xiàn)多個接口。所以你繼承一個類的時候就無法再繼承別的類了。接口是用來代表形容詞或行為,例如Runnable、Clonable、Serializable等。因此,如果您使用一個抽象類來實(shí)現(xiàn)Runnable和Clonacle,你就不可以使你的類同時實(shí)現(xiàn)這兩個功能,而如果接口的話就沒問題。.抽象類是比接口稍快,所以很在乎進(jìn)度的應(yīng)用盡量使用抽象類。如果多個繼承層次的共同行為在在同一個地方編寫更好,那么抽象類會是更好的選擇。有時候可以在接口里定義函數(shù)但是在抽象類里默認(rèn)功能就能實(shí)現(xiàn)接口和抽

6、象類共同工作了。.java設(shè)計模式面試題一、你對MVC的理解,MVC有什么優(yōu)缺點(diǎn)?結(jié)合Struts,說明在一個Web應(yīng)用如何去使.用?答:MVC設(shè)計模式(應(yīng)用觀察者模式的框架模式)M:Model(Businessprocesslayer),模型,制作數(shù)據(jù)的業(yè)務(wù)處理層,并獨(dú)立于表現(xiàn)層(Independent.ofpresentation)。V:View(Presentationlayer),視圖,通過客戶端數(shù)據(jù)類型顯示數(shù)據(jù),并回顯模型層的執(zhí)行結(jié)果。.C:Controller(Controllayer),控制器,也就是視圖層和模型層橋梁,控制數(shù)據(jù)的流向,接受視圖層發(fā)出的事件,并重繪視圖MVC框架的

7、一種實(shí)現(xiàn)模型模型二(Servlet-centric):JSPServletJavaBean,以控制為核心,JSP只負(fù)責(zé)顯示和收集數(shù)據(jù),Sevlet,連接視圖和模.型,將視圖層數(shù)據(jù),發(fā)送給模型層,JavaBean,分為業(yè)務(wù)類和數(shù)據(jù)實(shí)體,業(yè)務(wù)類處理業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)實(shí)體,承載數(shù)據(jù),基本上大多數(shù)的項目都是使用這種MVC的實(shí)現(xiàn)模式。StrutsMVC框架(Webapplicationframeworks)Struts是使用MVC的實(shí)現(xiàn)模式二來實(shí)現(xiàn)的,也就是以控制器為核心。Struts提供了一些組件使用MVC開發(fā)應(yīng)用程序:Model:Struts沒有提供model類。這個商業(yè)邏輯必須由Web應(yīng)用程序的開發(fā)者

8、以JavaBean.或EJB的形式提供View:Struts提供了actionform創(chuàng)建formbean,用于在controller和view間傳輸數(shù)據(jù)。此外,.Struts提供了自定義JSP標(biāo)簽庫,輔助開發(fā)者用JSP創(chuàng)建交互式的以表單為基礎(chǔ)的應(yīng)用程序,.應(yīng)用程序資源文件保留了一些文本常量和不對消息,可轉(zhuǎn)變?yōu)槠渌Z言,可用于JSP中。Controller:Struts提供了一個核心的控制器ActionServlet,通過這個核心的控制器來調(diào)用其.他用戶注冊了的自定義的控制器Action,自定義Action需要符合Struts的自定義Action規(guī).范,還需要在struts-config.xm

9、l的特定配置文件中進(jìn)行配置,接收J(rèn)SP輸入字段形成Actionform,然后調(diào)用一個Action控制器。Action控制器中提供了model的邏輯接口。.二、什么是WebService?答:WebService是一個SOA(面向服務(wù)的編程)的架構(gòu),它是不依賴于語言,不依賴于平臺,可以實(shí)現(xiàn)不同的語言間的相互調(diào)用,通過Internet進(jìn)行基于Http協(xié)議的網(wǎng)絡(luò)應(yīng)用間的交互。WebService實(shí)現(xiàn)不同語言間的調(diào)用,是依托于一個標(biāo)準(zhǔn),webservice是需要遵守WSDL.(web服務(wù)定義語言)/SOAP(簡單請求協(xié)議)規(guī)范的。WebService=WSDLSOAPUDD(Iwebservice的注

10、冊)Soap是由Soap的part和0個或多個附件組成,一般只有part,在part中有Envelope和.Body。WebService是通過提供標(biāo)準(zhǔn)的協(xié)議和接口,可以讓不同的程序集成的一種SOA架構(gòu)。第2頁共10頁.WebService的優(yōu)點(diǎn)(1) 可以讓異構(gòu)的程序相互訪問(跨平臺)(2) 松耦合(3) 基于標(biāo)準(zhǔn)協(xié)議(通用語言,允許其他程序訪問)WebService的基本原理(1)ServiceProvider采用WSDL描述服務(wù)(2) ServiceProviderserver).(3) ServiceRequestor(4) Servicerequestor三、什么是中間件?采用UDD

11、I將服務(wù)的描述文件發(fā)布到UDDI服務(wù)器(Register在UDDI服務(wù)器上查詢并獲取WSDL文件將請求綁定到SOAP,并訪問相應(yīng)的服務(wù)。中間件就是程序中可織入的,可重用的,與業(yè)務(wù)邏輯無關(guān)的各種組件。中間件(middleware)是基礎(chǔ)軟件的一大類,屬于可復(fù)用軟件的范疇。顧名思義,中間件處于制作系統(tǒng)軟件與用戶的應(yīng)用軟件的中間。中間件在制作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫之上,應(yīng)用軟件的下層,總的作用是為處于自己上層的應(yīng)用軟件提供運(yùn)行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復(fù)雜的應(yīng)用軟件。在眾多關(guān)于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟

12、件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的制作系統(tǒng)之上,管理計算資源和網(wǎng)絡(luò)通信。分類:數(shù)據(jù)訪問中間件,遠(yuǎn)程調(diào)用中間件,消息中間件,交易中間件,對象中間件。舉例:1 ,RMI(RemoteMethodInvocations,遠(yuǎn)程調(diào)用)2 ,LoadBalancing(負(fù)載均衡,將訪問負(fù)荷分散到各個服務(wù)器中)3 ,TransparentFail-over(透明的故障切換)4 ,Clustering(集群,用多個小的服務(wù)器代替大型機(jī))5 ,Back-end-Integration(后端集成,用現(xiàn)有的、新開發(fā)的系統(tǒng)如何去集成遺留的系統(tǒng))6 ,Transaction事務(wù)(全局/局部)全局事務(wù)(

13、分布式事務(wù))局部事務(wù)(在同一數(shù)據(jù)庫聯(lián)內(nèi)的事務(wù))7 ,DynamicRedeployment(動態(tài)重新部署,在不停止原系統(tǒng)的情況下,部署新的系統(tǒng))8 ,SystemManagement(系統(tǒng)管理)9 ,Threading(多線程處理)10 ,Message-orientedMiddleware面向消息的中間件(異步的調(diào)用編程)11 ,ComponentLifeCycle(組件的生命周期管理)12 ,Resourcepooling(資源池)13 ,Security(安全)14 ,Caching(緩存)四、什么是典型的軟件三層結(jié)構(gòu)?軟件設(shè)計為什么要分層?軟件分層有什么好處?答:(1)Presenta

14、tionlayer(表示層)(1) 表示邏輯(生成桌面代碼)(2) 接收請求(3) 處理業(yè)務(wù)層拋出的異常(4) 負(fù)責(zé)規(guī)則驗證(數(shù)據(jù)格式,數(shù)據(jù)非空等)(5) 進(jìn)程安排控制第3頁共10頁(2)Servicelayer(服務(wù)層/業(yè)務(wù)層)(1) 封裝業(yè)務(wù)邏輯處理,并且對外暴露接口(2) 負(fù)責(zé)事務(wù),安全等服務(wù)(3) Persistencelayer(持久層)(1) 封裝數(shù)據(jù)訪問的邏輯,暴露接口(2) 提供方便的數(shù)據(jù)訪問的技術(shù)指導(dǎo)文件(查詢語言,API,映射機(jī)制等)Domainlayer(域?qū)樱?1) 業(yè)務(wù)對象以及業(yè)務(wù)關(guān)系的表示(2) 處理簡單的業(yè)務(wù)邏輯(3) 域?qū)拥膶ο罂梢源┰奖硎緦?,業(yè)務(wù)層,持久層軟件

15、分層結(jié)構(gòu)使得代碼維護(hù)非常方便,設(shè)計明確,各層獨(dú)立,專注自己擅長的領(lǐng)域。五、什么是OOP?OOP相對于面向過程編程有哪些優(yōu)點(diǎn)?OOP,Object-OrientedProgramming,面向?qū)ο缶幊滩煌诿嫦蜻^程編程:.(1)OOP關(guān)注對象和角色,也就是事物的本質(zhì)1 )OOP把客觀世界中的對象抽象成對應(yīng)的類。2 )通過類構(gòu)造實(shí)例。3 )通過依賴、繼承、實(shí)現(xiàn)等形式建立對象間的通信關(guān)系4 2)OOP易于擴(kuò)展,增加或改變業(yè)務(wù)的功能,無需大幅改動改變源代碼5 3)OOP易于建模,OOP就是軟件架構(gòu)師在計算機(jī)高級語言中對客觀世界的抽象和再現(xiàn),人們可以很好地理解和建立起計算機(jī)中的抽象模型六、談?wù)凮verl

16、oad和Override的區(qū)別。答:方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding.是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。.七、談?wù)凥

17、ashMap和Hashtable的區(qū)別。答:HashMap是輕量級的(線程不安全的,效率高的)集合,Hashtable是重量級的(線程安全的,效率低的)集合。都屬于Map接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。HashMap類沒有分類或者排序。它允許一個null鍵和多個null值。Hashtable類似于HashMap,但是不允許null鍵和null值。它也比HashMap慢,.因為它是同步的。八、請問abstractclass和interface有什么區(qū)別?答:1) 接口沒有任何的實(shí)現(xiàn),而抽象類它可以有部分的實(shí)現(xiàn)也可以沒有;2) 如果需要復(fù)用或者共享部分代碼,應(yīng)該用抽象類而不是接口;3)

18、繼承無法解決類型的轉(zhuǎn)換問題,接口就是為了解決這一問題而產(chǎn)生的(Java的單繼第4頁共10頁.承是接口產(chǎn)生的根本原因)接口是一種抽象的第三方規(guī)范,跟對象沒什么直接關(guān)系。九、請問軟件開發(fā)中的設(shè)計模式你會使用哪些?答:我熟悉的設(shè)計模式有單例模式,DAO模式,模板方法,工廠模式,委托代理模式,MVC模式等。Singleton模式主要作用是保證在Java應(yīng)用程序中,一個類Class只有一個實(shí)例存在。.Singleton模式一般形式:定義一個類,它的構(gòu)造函數(shù)為private的,它有一個static的private的該類變量,在類.初始化時實(shí)例話,通過一個public的getInstance方法獲取對它的引

19、用,繼而調(diào)用其中的方法。.十、類的核心特性有哪些?類具有封裝性、繼承性和多態(tài)性。封裝性:類的封裝性為類的成員提供公有、缺省、保護(hù)和私有等多級訪問權(quán)限,追求是隱藏類中的私有變量和類中方法的實(shí)現(xiàn)細(xì)節(jié)。繼承性:類的繼承性提供從已存在的類創(chuàng)建新類的機(jī)制,繼承(inheritance)使一個新類自動擁有被繼承類(父類)的全部成員。多態(tài)性:類的多態(tài)性提供類中方法執(zhí)行的多樣性,多態(tài)性有兩種表現(xiàn)形式:重載和覆蓋。十一、請問類與對象有什么區(qū)別?類類就是某一種事物的一般性的集合體,是相同或相似的各個事物共同特性的一種抽象。對象在面向?qū)ο蟾拍钪?,對象(Object)是類的實(shí)例(instance)。對象與類的關(guān)系就像

20、變量與數(shù)據(jù)類型的關(guān)系一樣。十二、寫出生產(chǎn)者消費(fèi)者模型的實(shí)現(xiàn)(參照OOA/D中老師的代碼)十三、用軟件工程和Java來敘述購物車(shoppingcart)系統(tǒng)實(shí)現(xiàn)十四、文件系統(tǒng)的幾個類:FileInputStream、FileOutputStream、FileReader、FileWriter的區(qū)別.十五、請寫出JavaAPI中最常用的五個包,并且各舉兩個類加以說明。(查閱api)十六、請問你在“電信運(yùn)營支撐系統(tǒng)”中遇到了哪些問題?你是怎么解決的?做這個項目你最大的收獲是什么?(自己結(jié)合自己的項目,做一下匯總報告,然后想想怎么去回答)十七、請說出幾個常用的異常類答:NullpointExcep

21、tion(空指針異常)ClassNotFoundException(類找不到異常)ClassCastException(類型轉(zhuǎn)換異常)IllegalArgumentException(非法參數(shù)異常)ArithmeticException(算術(shù)異常)NumberFormatException(數(shù)據(jù)格式異常)IndexOutOfBoundsException(數(shù)組下標(biāo)越界異常)IllegalStateException(非法語句異常)十八、什么是進(jìn)程和線程?兩者的區(qū)別是什么?(經(jīng)常會被問道,查閱制作系統(tǒng)書,或問問陳老師)十九、請簡要描述一下你做的ShoppingCart項目。(自己結(jié)合自己的項目,

22、做一下匯總報告,然后想第5頁共10頁.想怎么去回答)二十、請問網(wǎng)絡(luò)7層協(xié)議,tcp/ip4層協(xié)議是什么?二十一、Java面向?qū)ο蟮乃拇筇攸c(diǎn)二十二、public,private,protected,default訪問權(quán)限(可見性).答:public:全局可見protected:繼承體系結(jié)構(gòu)之間可見default(或不寫):同包可見private:本類可見。二十三、名詞解釋CRMCustomerRelationshipManagement,客戶關(guān)系管理ERPEnterpriseResourcePlanning,企業(yè)資源規(guī)劃OSSOperationSupportSystem,運(yùn)營支撐系統(tǒng)BSSBus

23、inessSupportSystem,數(shù)據(jù)定義語言BOSSBusinessOperationSupportSystem,數(shù)據(jù)定義語言O(shè)AOfficeAutomatization,辦公自動化HTTPOOPSOAGUIDDLDataDefinitionLanguage,數(shù)據(jù)定義語言DMLDataManipulationLanguage,數(shù)據(jù)制作語言WYSIWYG所見即所得WhatYouSeeisWhatYouGetCMPCMTB2BC2CB2CIDEDOMClient/ServerCMMORMMISMVO6頁共10頁MVC是ModelViewController的簡寫。"Model&qu

24、ot;代表的是應(yīng)用的業(yè)務(wù)邏輯(通過.JavaBean,EJB組件實(shí)現(xiàn)),"View"是應(yīng)用的表示面(由JSP頁面產(chǎn)生),"Controller"是.提供應(yīng)用的處理過程控制(一般是一個Servlet),通過這種設(shè)計模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。OLECORBACORB即準(zhǔn)是公共對象請求代理結(jié)構(gòu)(CommonObjectRequestBrokerArchitecture),由又t.象管理組織(ObjectManagementGroup,縮寫為OMG)標(biāo)準(zhǔn)化。它的組成是接口定義語言(IDL),語言綁定(bin

25、ding:也譯為聯(lián)編)和允許應(yīng)用程序間互制作的協(xié)議。其追求為:.用不同的程序設(shè)計語言書寫在不同的進(jìn)程中運(yùn)行為不同的制作系統(tǒng)開發(fā)。UMLUML,標(biāo)準(zhǔn)建模語言,包含用例圖,靜態(tài)圖(包括類圖、對象圖和包圖),行為圖,交互圖(順序.圖,合作圖),實(shí)現(xiàn)圖等。XMLCMMIJREJ2EEJ2EE是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(componentbase).的企業(yè)級應(yīng)用模型(enterprieseapplicationmodel).在這樣的一個應(yīng)用系統(tǒng)中,可按照功能劃分.為不同的組件,這些組件又可在不同計算機(jī)上,并且處于相應(yīng)的層次(tier)中

26、。所屬層次包括客戶層(clietntier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。.JDKAOPOOContainerW3CJMSDomainPOJOJVMJNDIJTASOAPSimpleObjectAccessProtocol,簡單對象訪問協(xié)議WSDLJDOJDO是Java對象持久化的新的規(guī)范,為JavaDataObject的簡稱,也是一個用于存取某種數(shù).據(jù)倉庫中的對象的標(biāo)準(zhǔn)化API。JDO提供了透明的對象存儲,因此對開發(fā)人員來說,存儲數(shù)據(jù)對象完全不需要額外的代碼(如JDBCAPI的使用)。這些繁瑣的例行工作已經(jīng)轉(zhuǎn)移到JDO產(chǎn)品提供商身上,使開發(fā)人員解脫

27、出來,從而集中進(jìn)度和精力在業(yè)務(wù)邏輯上。另外,JDO很靈活,因為它可以在任何數(shù)據(jù)底層上運(yùn)行。JDBC只是面向關(guān)系數(shù)據(jù)庫(RDBMS)JD(M通用,提供到任何數(shù)據(jù)底層的存儲功能,比如關(guān)系數(shù)據(jù)庫、文件、XML以及對象數(shù)據(jù)庫第7頁共10頁.(ODBMS)等等,使得應(yīng)用可移植性更強(qiáng)。TDDDAOIoCInversionofControl,控制反轉(zhuǎn)RMIDNSInternetDomainNameSystem,因特網(wǎng)域名系統(tǒng)URLURI二十四、數(shù)據(jù)庫連接池的工作機(jī)制二十五、互聯(lián)網(wǎng)提供哪些服務(wù)?二十六、請寫出JSP的幾個隱含內(nèi)置對象答:JSP中隱含內(nèi)置對象名稱類型注釋和范圍requestjavax.servl

28、et.http.HttpServletRequestrequest.responsejavax.servlet.http.HttpServletResponseresponse.pagejavax.lang.ObjectpageExceptionjava.lang.ThrowablepagepageContextjavax.servlet.jsp.PageContextpagesessionjavax.servlet.http.HttpSessionsessionapplicationjavax.servlet.ServletContextServletContext.outjavax.ser

29、vlet.jsp.JspWriterOutputStreamconfigjavax.servlet.ServletConfigServletConfigJSP共有以下9種基本內(nèi)置組件(可與ASP的6種內(nèi)部組件相對應(yīng)):request用戶端請求,此請求會包含來自GET/POST請求的參數(shù)response網(wǎng)頁傳回用戶端的回應(yīng)pageJSP網(wǎng)頁本身exception針對不對網(wǎng)頁,未捕捉的例外pageContext網(wǎng)頁的屬性是在這里管理session與請求有關(guān)的會話期applicationservlet正在執(zhí)行的內(nèi)容out用來傳送回應(yīng)的輸出configServlet的構(gòu)架部件二十七、請你談?wù)凷SH整合

30、答:SSH:Struts(表示層)Spring(業(yè)務(wù)層)Hibernate(持久層)Struts:Struts是一個表示層框架,主要作用是桌面展示,接收請求,分發(fā)請求。在MVC框架中,Struts屬于VC層次,負(fù)責(zé)桌面表現(xiàn),負(fù)責(zé)MVC關(guān)系的分發(fā)。(View:.沿用JSP,HTTP,F(xiàn)orm,Tag,Resourse。Controller:ActionServlet,struts-config.xml,Action).Hibernate:第8頁共10頁Hibernate是一個持久層框架,它只負(fù)責(zé)與關(guān)系數(shù)據(jù)庫的制作。Spring:Spring是一個業(yè)務(wù)層框架,是一個整合的框架,能夠很好地黏合表示層

31、與持久層。二十八、應(yīng)用服務(wù)器與WebServer的區(qū)別二十九、JavaServletAPI中forward()與redirect()的區(qū)別答:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會顯示出轉(zhuǎn)向后的地址。后者則是完全的跳轉(zhuǎn),瀏覽器將會得到跳轉(zhuǎn)的地址,并重新發(fā)送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。在有些情況下,比如,需要跳轉(zhuǎn)到一個其它服務(wù)器上的資源,則必須使用sendRedirect()方法。三十、寫一個簡單的C/S結(jié)構(gòu)程序,Java的通信編程,編程題(

32、或問答),用JAVASOCKE.T編程,讀服務(wù)器幾個字符,再寫入本地顯示?答:Server端程序:packagetest;.*;importjava.io.*;publicclassServerprivateServerSocketss;privateSocketsocket;privateBufferedReaderin;privatePrintWriterout;publicServer()tryss=newServerSocket(10000);while(true)socket=ss.accept();StringRemoteIP=socket.getInetAddress().get

33、HostAddress();StringRemotePort=":"socket.getLocalPort();System.out.println("Aclientcomein!IP:"RemoteIPRemotePort);in=newBufferedReader(newInputStreamReader(socket.getInputStream();Stringline=in.readLine();System.out.println("Cleintsendis:"line);out=newPrintWriter(socket

34、.getOutputStream(),true);.out.println("YourMessageReceived!");out.close();in.close();第9頁共10頁socket.close();catch(IOExceptione)out.println("wrong");publicstaticvoidmain(Stringargs)newServer();Client端程序:packagetest;importjava.io.*;.*;publicclassClientSocketsocket;BufferedReaderin;PrintWriterout;publicClient()trySystem.ou

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論