Java Web程序設(shè)計教程(第二版)(微課版)習(xí)題答案_第1頁
Java Web程序設(shè)計教程(第二版)(微課版)習(xí)題答案_第2頁
Java Web程序設(shè)計教程(第二版)(微課版)習(xí)題答案_第3頁
Java Web程序設(shè)計教程(第二版)(微課版)習(xí)題答案_第4頁
Java Web程序設(shè)計教程(第二版)(微課版)習(xí)題答案_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

?PAGE15?附錄各章習(xí)題參考答案附錄各章習(xí)題參考答案第1章習(xí)題參考答案1.答:Web應(yīng)用是一種可以通過Web訪問的應(yīng)用程序。通過瀏覽器可以訪問百度、淘寶、網(wǎng)易新聞等網(wǎng)站,這些就是Web應(yīng)用。Web應(yīng)用程序是一種使用HTTP(HyperTextTransferProtocol,超文本傳輸協(xié)議)作為核心通信協(xié)議,通過Internet讓W(xué)eb瀏覽器和服務(wù)器通信的計算機(jī)程序。2.答:(1)瀏覽器根據(jù)我們輸入的地址找到相應(yīng)的服務(wù)器,不同的網(wǎng)站對應(yīng)不同的服務(wù)器。這個服務(wù)器通常稱為Web服務(wù)器,可以接收瀏覽器發(fā)送的請求。(2)Web服務(wù)器根據(jù)請求的內(nèi)容調(diào)用不同的服務(wù)器端程序,服務(wù)器端程序通常也是一個服務(wù)器,稱為應(yīng)用服務(wù)器。(3)應(yīng)用服務(wù)器接收到請求之后,查找相應(yīng)的文件,加載并執(zhí)行相應(yīng)的任務(wù),如果涉及到數(shù)據(jù)處理,則需要與數(shù)據(jù)庫服務(wù)器交互。(4)處理完數(shù)據(jù),將處理結(jié)果返回給應(yīng)用服務(wù)器,服務(wù)器端程序的執(zhí)行結(jié)果通常是HTML文檔。(5)應(yīng)用服務(wù)器把執(zhí)行的結(jié)果返回給Web服務(wù)器,Web服務(wù)器再把這個結(jié)果返回給客戶端瀏覽器。(6)瀏覽器解析HTML文檔,然后把解析后的網(wǎng)頁顯示給最終用戶。3.答:(1)HTML:超文本標(biāo)記語言,是Web的描述語言。(2)CSS:層疊樣式表(CascadingStyleSheets),也就是通常所說樣式表。(3)ActiveX:一個集成平臺,使用ActiveX可以方便地在Web頁中插入多媒體效果、交互式對象、復(fù)雜程序等。(4)JavaScript:JavaScript是一種簡單的腳本語言,可以在瀏覽器中直接運行。(5)jQuery:一個快速、簡潔的JavaScript框架,是繼Prototype之后又一個優(yōu)秀的JavaScript代碼庫。(6)其他:VBScript、Applet等。4.答:平臺無關(guān)性、安全性、面向?qū)ο?、異常處理?.答:JSP、JavaBean、Servlet、JDBC、JSTL和表達(dá)式語言EL。6.答:Web服務(wù)器是運行及發(fā)布Web應(yīng)用的容器,只有將開發(fā)的Web項目放置到該容器中,才能使網(wǎng)絡(luò)中的所有用戶通過瀏覽器進(jìn)行訪問。常用的Web服務(wù)器有:Apache服務(wù)器、Tomcat服務(wù)器、Resin服務(wù)器、JBoss服務(wù)器、WebSphere服務(wù)器、WebLogic服務(wù)器。第2章習(xí)題參考答案1.答:JAVA_HOME和classpath 2.答:切換到Tomcat的bin子目錄(D:\Tomcat8.5\bin)。雙擊startup.bat,即可啟動Tomcat。在使用完Tomcat之后,可以雙擊bin目錄下的shutdown.bat來停止它。3.答:/WEB-INF/lib目錄4.答:參見2.3.3節(jié)中的第1小節(jié)5.略6.略第3章習(xí)題參考答案1.答:在服務(wù)器端有一個JSP容器負(fù)責(zé)獲得對JSP文件的請求,當(dāng)一個JSP文件第一次被請求時,容器首先會把這個JSP文件轉(zhuǎn)換成一個Servlet(Java源文件)。在轉(zhuǎn)換過程中如果發(fā)現(xiàn)JSP文件有語法錯誤,轉(zhuǎn)換過程將中斷,并向服務(wù)端和客戶端輸出出錯信息。如果轉(zhuǎn)換成功,JSP引擎會把該Java源文件編譯成相應(yīng)的.class文件,因為這個過程(編譯)會耗費一定時間,所以第一次訪問或jsp文件有改動時,訪問時間會比較長。接下來,JSP引擎會創(chuàng)建一個該Servlet的實例,并執(zhí)行該實例的jspInit()方法,然后創(chuàng)建并啟動一個新的線程,新線程調(diào)用實例的jspService()方法。2.答:JSP中主要有3個編譯指令:page指令、include指令和taglib指令。JSP的動作指令主要有如下7種:jsp:include指令、jsp:forward指令、jsp:param指令、jsp:plugin指令、jsp:useBean指令、jsp:getProperty指令、jsp:setProperty指令。JSP的內(nèi)置對象有9個:request對象、response對象、session對象、out對象、page對象、application對象、config對象、pageContext對象、exception對象3.答:在JSP文件中可以使用如下4種注釋的方式:HTML注釋、傳統(tǒng)的Java行注釋、傳統(tǒng)的Java塊注釋、JSP注釋4.答:通過getParameter()方法獲取參數(shù)值,對于多值參數(shù),getParameter()將返回第一個值,如果要獲取所有值,可以使用getParameterValues()方法。另外,方法getParameterMap()將返回一個包含了所有參數(shù)名值對Map<String,String[]>,而getParameterNames()方法將返回所有可用參數(shù)的名字的枚舉。5.答:URL映射的過濾器優(yōu)先級要比Servlet名稱映射的過濾器高6.答:Servlet2.4規(guī)范將Servlet監(jiān)聽器劃分為以下3種:● ServletContext事件監(jiān)聽器:用于監(jiān)聽?wèi)?yīng)用程序環(huán)境對象?!?HttpSession事件監(jiān)聽器:用于監(jiān)聽用戶會話對象?!?ServletRequest事件監(jiān)聽器:用于監(jiān)聽請求消息對象。7.答:.load()、$.get()、.post()、$.getJSON()、$.getScript()、$.ajax()第4章習(xí)題參考答案1.答:JSTL全名JSPStanddardTagLibrary(JSP標(biāo)準(zhǔn)標(biāo)簽庫),它是SUN公司發(fā)布的一個針對JSP開發(fā)的新組件,它允許使用標(biāo)簽開發(fā)JSP頁面。在使用JSTL之前,需要從Apache的標(biāo)準(zhǔn)標(biāo)簽庫中下載所需的壓縮包,解壓下載的zip包,在lib目錄下有2個jar文件:jstl.jar和standard.jar。將jstl.jar和standard.jar復(fù)制到%CATALINA_HOME\common\lib目錄下,或者%CATALINA_HOME\shared\lib目錄下,如果只在當(dāng)前Web應(yīng)用程序中使用,可以將這兩個文件復(fù)制到應(yīng)有程序的WEB-INF/lib目錄下,在使用JSTL之前,必須引入taglib指令聲明網(wǎng)頁要使用的標(biāo)簽種類,使用核心標(biāo)簽庫的taglib指令如下:<%@taglibprefix="c"uri="/jsp/jstl/core"%>2.答:使用EL隱式變量。pageScope:包含JSP內(nèi)置對象page作用范圍內(nèi)的變量集合;requestScope:包含JSP內(nèi)置對象request作用范圍內(nèi)的變量集合;sessionScope:包含JSP內(nèi)置對象session作用范圍內(nèi)的變量集合;applicationScope:包含JSP內(nèi)置對象application作用范圍內(nèi)的變量集合。3.答:核心標(biāo)簽庫中的標(biāo)簽一共有14個,被分為了四類,分別是:●多用途通用標(biāo)簽:<c:out>、<c:set>、<c:remove>和<c:catch>?!駰l件控制標(biāo)簽:<c:if>、<c:choose>、<c:when>和<c:otherwise>?!裱h(huán)控制標(biāo)簽:<c:forEach>和<c:forTokens>?!馯RL相關(guān)標(biāo)簽:<c:import>、<c:url>、<c:redirect>和<c:param>。4.答:<%@taglibprefix="sql"uri="/jsp/jstl/sql"%>5.答:<body-content>元素的可取值有如下4種:● tagdependent:標(biāo)簽體內(nèi)容直接被寫入BodyContent,由自定義標(biāo)簽類來進(jìn)行處理,而不被JSP容器解釋,● JSP:接受所有JSP語法,如定制的或內(nèi)部的tag、scripts、靜態(tài)HTML、腳本元素、JSP指令和動作。如:● empty:空標(biāo)記,即起始標(biāo)記和結(jié)束標(biāo)記之間沒有內(nèi)容。● scriptless:接受文本、EL和JSP動作。第5章習(xí)題參考答案1.答:MVC是一個框架模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。它把應(yīng)用程序被分成三個核心部件:模型、視圖、控制器。2.答:(1)當(dāng)Web容器收到請求(HttpServletRequet)后,它將請求傳遞給一系列的過濾鏈過濾,然后傳遞給FilterDispatcher核心控制器。(2)FilterDispatcher會根據(jù)URL在ActionMapper中搜索指定Action的映射信息,確定請求哪個Action。(3)找到對應(yīng)的Action后,F(xiàn)ilterDispatcher將控制權(quán)委派給ActionProxy,ActionProxy調(diào)用配置管理器(ConfigurationManager)從配置文件中讀取配置信息(struts.xml),然后創(chuàng)建ActionInvocation對象。(4)如果配置信息(struts.xml)中有被請求Action相關(guān)的攔截器,那么ActionInvocation在調(diào)用Action之前會依次調(diào)用攔截器(1..N),一旦執(zhí)行結(jié)果返回結(jié)果字符串,ActionInvocation負(fù)責(zé)查找結(jié)果字符串對應(yīng)的結(jié)果,然后執(zhí)行這個結(jié)果會調(diào)用一些模版(JSP、Freemarker或Velocity)來呈現(xiàn)頁面。(5)攔截器(N..1)會再次被執(zhí)行(順序和Action執(zhí)行之前相反),最后,響應(yīng)(HttpServletResponse)被返回核心控制器(FilterDispatcher)和其他過濾器。3.答:在<package>元素中使用<default-interceptor-ref>元素。4.答:Struts2攔截器的實現(xiàn)原理和過濾器的實現(xiàn)差不多,它提供了一種機(jī)制,使開發(fā)者可以在一個Action的execute()方法執(zhí)行的前后進(jìn)行攔截,然后插入一些自己的邏輯。如果沒有攔截器,這些要插入的邏輯就得寫在Action的實現(xiàn)中,而且每個Action實現(xiàn)都要寫這些功能邏輯,這樣的實現(xiàn)非常繁瑣。而Struts2的設(shè)計者們把這些共有的邏輯獨立出來,實現(xiàn)成一個個攔截器,既體現(xiàn)了軟件復(fù)用的思想,又方便程序員使用。5.答:自定義攔截器的第一步就是創(chuàng)建自己的攔截器類,通常有如下兩種方法實現(xiàn):● 實現(xiàn)erceptor.Interceptor接口● 繼承erceptor.AbstractInterceptor類。第6章習(xí)題參考答案1.答:語法格式如下。SELECT[ALL|DISTINCT]<目標(biāo)列表表達(dá)式>[,<目標(biāo)列表表達(dá)式>]…FROM<表名或視圖名>[,<表名或視圖名>]…[WHERE<條件表達(dá)式>][GROUPBY<列名1>[HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC|DESC]];整個SELECT語句的含義是,根據(jù)WHERE子句的條件表達(dá)式,從FROM子句指定的基本表或視圖中找出滿足條件的元組,再按SELECT子句中的目標(biāo)列表表達(dá)式,選出元組中的屬性值形成結(jié)果表。如果有GROUPBY子句,則將結(jié)果按<列名1>的值進(jìn)行分組,該屬性列值相等的元組為一個組。通常會在每組中作用聚集函數(shù)。如果GROUPBY子句帶有HAVING短語,則只有滿足指定條件的組才予以輸出。如果有ORDERBY子句,則結(jié)果表還要按<列名2>的值的升序或降序排列。2.答:他們都是用來儲存字符串長度小于255的字符。兩者的差別在于VARCHAR的字符長度可變,而CHAR的字符長度不可變。3.答:JDBC訪問數(shù)據(jù)庫的主要步驟如下:(1)與數(shù)據(jù)庫建立連接;(2)向數(shù)據(jù)庫發(fā)送SQL語句;(3)處理發(fā)送的SQL語句;(4)將處理結(jié)果返回。4.答:JDBC連接串url后面跟兩個參數(shù)“?useUnicode=true&characterEncoding=UTF-8”第7章習(xí)題參考答案1.答:ORM(Object-RelationMap,對象關(guān)系映射)是一種為了解決面向?qū)ο缶幊踢^程中,程序與關(guān)系數(shù)據(jù)庫交互而提出來的技術(shù)。自從ORM概念提出之后,涌現(xiàn)出很多基于ORM的應(yīng)用框架。其中,具有代表性的有Hibernate、Ibatis、JPOX、ApacheTorque和TopLink等。2.答:connection.driver_class,配置數(shù)據(jù)庫的驅(qū)動程序;connection.url,設(shè)置數(shù)據(jù)庫的連接url;connection.username,連接數(shù)據(jù)庫的用戶名;connection.password,連接數(shù)據(jù)庫的密碼。3.答:Hibernate是一個將持久化類與數(shù)據(jù)庫表進(jìn)行映射的工具,它本身對JDBC進(jìn)行了封裝而且擁有多種事務(wù)處理方式,完整的Hibernate框架包括:Session、SessionFactory、Transaction、Query、Configuration等。4.答:Hibernate框架提供了多種檢索策略:立即檢索、延遲檢索、預(yù)先檢索和批量檢索。立即檢索指的是在加載一個對象時,不僅立即加載該對象,而且還會立即加載與該對象相關(guān)聯(lián)的其他對象。需要在映射文件中將<class>元素和<set>元素的lazy屬性設(shè)置為false。延遲檢索策略,需要將lazy屬性設(shè)置為true。預(yù)先檢索策略需要在<set>元素內(nèi)添加fetch屬性,并將其設(shè)置為join。批量檢索需要在<class>元素或<set>元素中添加<batch-size>屬性,并指定其值為每次處理的記錄數(shù)。5.答:一對多關(guān)系的映射有3種方式:一對多單向關(guān)聯(lián)、多對一單向關(guān)聯(lián)和雙向關(guān)聯(lián)。6.答:PCI(PeripheralComponentInterconnect)是一種高帶寬、獨立于處理器的總線。它主要用于高速外設(shè)的I/O接口和主機(jī)相連,如圖形顯示適配器、網(wǎng)絡(luò)接口控制卡、磁盤控制器等。7.解:200MB/s8.答:時鐘周期是系統(tǒng)工作的最小時間單位,它由計算機(jī)主頻決定;總線周期指總線上兩個設(shè)備進(jìn)行一次信息傳輸所需要的時間(如CPU對存儲器或I/O端口進(jìn)行一次讀/寫操作所需的時間);指令周期指CPU執(zhí)行一條指令所需要的時間。三者之間的關(guān)系是:時鐘周期是基本動作單位;一個總線周期通常由n個時鐘周期組成;而一個指令周期中可能包含有一個或幾個總線周期,也可能一個總線周期都沒有,這取決于該指令的功能。9.解:總線的帶寬=數(shù)據(jù)寬度×總線周期的最高頻率 =(32/8)Byte×(8.33/3)M/s =11.1MB/s第8章習(xí)題參考答案1.答:事務(wù)(Transaction)是工作中的基本邏輯單元,在這個單元里的所有操作要么都執(zhí)行,要么都不執(zhí)行。在關(guān)系數(shù)據(jù)庫中,一個事務(wù)可能包括一系列更新數(shù)據(jù)庫記錄的SQL操作,而一個完整的事務(wù)保證這些操作都被正確地同步到數(shù)據(jù)庫中,不會發(fā)生數(shù)據(jù)的不完整或者不一致,或者受到其他干擾。ACID(原子性、一致性、隔離性和持久性)特性 2.答:(1)第一類丟失更新(lostupdate);(2)臟讀(dirtyread);(3)虛讀(phantomread);(4)不可重復(fù)讀(unrepeatedread);(5)第二類丟失更新(secondlostupdates)。3.答:Hibernate為樂觀鎖提供了3種實現(xiàn):基于version、基于timestamp和為遺留項目添加樂觀鎖。4.答:緩存的范圍分為三類:(1)事務(wù)范圍;(2)進(jìn)程范圍;(3)集群范圍一級緩存是事務(wù)范圍的緩存。5.答:查詢緩存基于二級緩存,使用查詢緩存之前,必須首先配置好二級緩存;在配置了二級緩存的基礎(chǔ)上,在Hibernate的配置文件hibernate.cfg.xml中添加如下配置,可以啟用查詢緩存:<propertyname="hibernate.cache.use_query_cache">true</property>此外在程序中還必須手動啟用查詢緩存:query.setCacheable(true);第9章習(xí)題參考答案1.答:Spring框架之所以受到廣泛歡迎,與其自身的特性有密切關(guān)系?!?輕量級:從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對象不依賴于Spring的特定類?!?方便解耦:Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了低耦合。當(dāng)應(yīng)用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進(jìn)來,而不是這個對象自己創(chuàng)建或者查找依賴對象?!?面向切面編程:Spring提供了面向切面編程(AOP)的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)進(jìn)行內(nèi)聚性的開發(fā)。開發(fā)人員只需關(guān)注業(yè)務(wù)邏輯的實現(xiàn)即可?!?方便集成各種優(yōu)秀框架:Spring不排斥各種優(yōu)秀的開源框架,相反,Spring可以降低各種框架的使用難度,Spring提供了對各種優(yōu)秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。● MVC:Spring的作用是整合,但不僅僅限于整合,Spring框架可以被看做是一個企業(yè)解決方案級別的框架??蛻舳税l(fā)送請求,服務(wù)器控制器(由DispatcherServlet實現(xiàn)的)完成請求的轉(zhuǎn)發(fā),控制器調(diào)用一個用于映射的類HandlerMapping,該類用于將請求映射到對應(yīng)的處理器來處理請求。HandlerMapping將請求映射到對應(yīng)的處理器Controller(相當(dāng)于Action)。在Controller中可以調(diào)用一些Service或DAO來進(jìn)行數(shù)據(jù)操作,Model和View用于存放從DAO中取出的數(shù)據(jù),還可以存放響應(yīng)視圖的一些數(shù)據(jù)?!?方便程序的測試:可以用非容器依賴的編程方式進(jìn)行幾乎所有的測試工作,在Spring里,測試不再是昂貴的操作,而是隨手可做的事情。例如:Spring對Junit4支持,可以通過注解方便的測試Spring程序。2.答:核心容器提供Spring框架的基本功能。包括spring-core、spring-beans、spring-context、spring-context-support和spring-expression(SpringEL語言)共5個模塊3.答:IoC(InversionofControl,控制反轉(zhuǎn))不是什么技術(shù),而是一種設(shè)計思想,主要關(guān)注組件的依賴性、配置及組件的生命周期。控制反轉(zhuǎn),包含兩個方面的內(nèi)容:一個是控制,另一個是反轉(zhuǎn)?!?所謂控制就是把對象(bean)和維護(hù)對象之間的關(guān)系(bean與bean之間的依賴關(guān)系)的權(quán)利轉(zhuǎn)交到Spring容器,而不是傳統(tǒng)的在對象內(nèi)部直接控制?!?那為何又是反轉(zhuǎn)呢,哪些方面反轉(zhuǎn)了?在傳統(tǒng)應(yīng)用程序中,是由我們在對象中主動控制去直接獲取依賴對象,也就是正轉(zhuǎn);而反轉(zhuǎn)則是由容器來幫忙創(chuàng)建及注入依賴對象,對象是被動的接受依賴對象,所以是反轉(zhuǎn),即:依賴對象的獲取被反轉(zhuǎn)了。4.答:● @Repository:用于對DAO實現(xiàn)類進(jìn)行標(biāo)注?!?@Service:用于對service層實現(xiàn)類進(jìn)行標(biāo)注?!?@Controller:用于對Web的控制層實現(xiàn)類進(jìn)行標(biāo)注。5.答:使用注解方式@Autowired使用XML配置文件設(shè)置<bean>元素的autowire屬性,為如下3個值中的一個:byName、byType、constructor。6.答:在SpringAOP中,支持4種類型的通知(advices):● 之前通知:在方法執(zhí)行前運行?!?返回后通知:在方法運行,并返回一個結(jié)果后?!?拋出后通知(Advice):運行方法拋出異常的情況下?!?環(huán)繞通知:環(huán)繞方法執(zhí)行運行,結(jié)合以上3個通知。第10章習(xí)題參考答案1.答:(1)用戶發(fā)送請求到前端控制器,前端控制器根據(jù)請求信息來決定選擇哪一個頁面控制器進(jìn)行處理,并把請求委托給它,即以前的控制器的控制邏輯部分,圖中的1、2兩步。(2)頁面控制器接收到請求后,進(jìn)行功能處理。首先需要收集和綁定請求參數(shù)到一個對象,這個對象在SpringWebMVC中叫命令對象,并進(jìn)行驗證,然后將命令對象委托給業(yè)務(wù)對象進(jìn)行處理;處理完畢后返回一個ModelAndView(模型數(shù)據(jù)和邏輯視圖名),圖中的3、4、5三步。(3)前端控制器收回控制權(quán),然后根據(jù)返回的邏輯視圖名,選擇相應(yīng)的視圖進(jìn)行渲染,并把模型數(shù)據(jù)傳入以便視圖渲染,圖中的6、7兩步。(4)前端控制器再次收回控制權(quán),將響應(yīng)返回給用戶,圖中的步驟8,至此整個請求的工作流程結(jié)束。2.答:@RequestMapping是Spring工具集中一個非常強(qiáng)大的工具,通過它可以映射請求、請求的Content-Type或者Accept頭、HTTP請求頭、指定請求參數(shù)或頭是否存在,或者這些信息的任意組合。在控制器的類定義及方法定義處都可使用@RequestMapping注解: 類定義處:提供初步的請求映射信息。相對于Web應(yīng)用的根目錄方法處:提供進(jìn)一步的細(xì)分映射信息。相對于類定義處的URL。若類定義處未標(biāo)注@RequestMapping,則方法處標(biāo)記的URL相對于Web應(yīng)用的根目錄。DispatcherServlet截獲請求后,就是通過控制器上@RequestMapping提供的映射信息確定請求所對應(yīng)的處理方法。3.答:(1)標(biāo)準(zhǔn)Servlet類型;(2)注解請求屬性;(3)綁定表單對象;(4)使用@RequestBody注解的實體;(5)模型類型4.答:不區(qū)分大小寫。5.答:(1)通過RedirectView(2)可以在返回視圖名字的字符串前面加“forword:”或“redirect:”。6.答:@ModelAttribute注解有如下三個作用:● 綁定請求參數(shù)到命令對象:將該注解標(biāo)注在控制器的功能處理方法的入?yún)⑸蠒r,用于將多個請求參數(shù)綁定到一個命令對象,從而簡化綁定流程,而且自動暴露為模型數(shù)據(jù)用于視圖頁面展示時使用。● 暴露表單引用對象為模型數(shù)據(jù):將該注解標(biāo)注在處理器的一般方法(非功能處理方法)上時,是為表單準(zhǔn)備要展示的表單引用對象,如注冊時需要選擇的所在城市等,而且在執(zhí)行功能處理方法(@RequestMapping注解的方法)之前,自動添加到模型對象中,用于視圖頁面展示時使用?!?暴露@RequestMapping方法返回值為模型數(shù)據(jù):@ModelAttribute和@RequestMapping同時注釋一個方法,是將功能處理方法的返回值暴露為模型數(shù)據(jù),用于視圖頁面展示時使用。這時該方法的返回值并不是表示一個視圖名稱,而是model屬性的值,視圖名稱由RequestToViewNameTranslator根據(jù)請求進(jìn)行轉(zhuǎn)換,RequestToViewNameTranslator將去除Web應(yīng)用上下文URL和URL結(jié)尾的任何文件擴(kuò)展名,剩下的URL將變成視圖名稱,如/user/home.do,轉(zhuǎn)換為邏輯視圖/user/home。7.答:使用@ResponseBody。8.答:使用Spring的form標(biāo)簽主要有兩個作用,第一是它會自動的綁定來自Model中的一個屬性值到當(dāng)前form對應(yīng)的實體對象,默認(rèn)是command屬性,這樣我們就可以在form表單體中方便的使用該對象的屬性了;第二是它支持我們在提交表單的時候使用除GET和POST之外的其他方法進(jìn)行提交,如DELETE和PUT等。第11章習(xí)題參考答案1.答:三層分別為● 表現(xiàn)層:傳統(tǒng)的JSP技術(shù),主要功能在于數(shù)據(jù)的顯示,數(shù)據(jù)如何表現(xiàn),如上一章學(xué)習(xí)的SpringWebMVC就是表現(xiàn)層的框架結(jié)構(gòu)。● 業(yè)務(wù)邏輯層:也叫中間層,主要是對業(yè)務(wù)的處理以及數(shù)據(jù)的處理?!?數(shù)據(jù)持久層:DAO模式,主要是實現(xiàn)與數(shù)據(jù)庫的交互,如第7章中學(xué)習(xí)的Hibernate框架。2.答:publicfinalHibernateTemplategetHibernateTemplate()publicfinalvoidsetSessionFactory(SessionFactorysessionFactory)3.答:當(dāng)使用Spring框架管理Hibernate的SessionFactory時,Hibernate配置文件(hibernate.cfg.xml)中的信息將會被轉(zhuǎn)移到Spring的配置文件中,并由IoC容器負(fù)責(zé)對SessionFactory的使用進(jì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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論