JavaWeb_程序設(shè)計_習(xí)習(xí)題參考答案(第1-6章)_第1頁
JavaWeb_程序設(shè)計_習(xí)習(xí)題參考答案(第1-6章)_第2頁
JavaWeb_程序設(shè)計_習(xí)習(xí)題參考答案(第1-6章)_第3頁
JavaWeb_程序設(shè)計_習(xí)習(xí)題參考答案(第1-6章)_第4頁
JavaWeb_程序設(shè)計_習(xí)習(xí)題參考答案(第1-6章)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、JavaWeb程序設(shè)計 練習(xí)題參考答案第一章:Servlet基礎(chǔ) 1、下列選項中屬于動態(tài)網(wǎng)站技術(shù)的是 _(多選)答:PHP/ASP/JSPA、PHPB、ASPC、JavaScriptD、JSP參考答案:PHP(Hypertext Preprocessor):超文本預(yù)處理器,其語法大量借鑒C、Java、Perl等語言,只需要很少的編程知識就能使用PHP建立一個真正交互的Web站點,由于PHP開放源代碼,并且是免費(fèi)的,所以非常流行,是當(dāng)今Internet上最為火熱的腳本語言之一。A(Active Server Pages):是一種類似HTML、Script與CGI結(jié)合體的技術(shù),他沒有提供自己專門的

2、編程語言,允許用戶使用許多已有的腳本語言編寫ASP應(yīng)用程序局限于微軟的IIS,般只適用于中小型站點,但目前ASP升級演變而來的支持大型網(wǎng)站的開發(fā)。JSP(Java ServerPages):是基于Java Servlet以及Java體系的Web開發(fā)技術(shù)。能在大部分服務(wù)器上運(yùn)行,而且易于維護(hù)和管理,安全性能方面也被認(rèn)為是三種基本動態(tài)網(wǎng)站技術(shù)中最好的。2、下列關(guān)于Servlet的說法正確的是_(多選)A、Servlet是一種動態(tài)網(wǎng)站技術(shù)B、Servlet運(yùn)行在服務(wù)端C、Servlet針對每個請求使用一個進(jìn)程來處理D、Servlet與普通的Java類一樣,可以直接運(yùn)行,不需要環(huán)境支持參考答案:Ser

3、vlet是一種動態(tài)網(wǎng)站技術(shù),是運(yùn)行在服務(wù)器端,Servlet針對每個請求使用一個線程來處理,而不是啟動一個進(jìn)程,傳統(tǒng)的CGI為每次請求啟動一個進(jìn)程來處理。所以Servlet的效率更高3、下列關(guān)于Servlet的編寫方式正確的是_(多選)A、必須是HttpServlet的子類B、通常需要覆蓋doGet() 和doPost()方法或其一C、通常需要覆蓋service()方法D、通常要在文件中聲明和兩個元素參考答案:A、B、D必須繼承Httpservlet類,不需要覆蓋servlce()方法,service()方法是Servlet接口中的方法,Servlet是HttpServlet的父類,該方法會根

4、據(jù)請求類型選擇執(zhí)行doGet()或doPost()方法。所以通常需要覆蓋doGet() 和doPost()方法或其一。4、下列關(guān)于Servlet生命周期的說法正確的是_(多選)A、構(gòu)造方法只會調(diào)用一次B、init()方法只會調(diào)用一次C、service()方法在每次請求此Servlet時都會被調(diào)用D、destroy()方法在每次請求完畢時會被調(diào)用。參考答案:B、CServlet生命周期由servlet接口定義,每次請求會生成一個對象,所以構(gòu)造方法會調(diào)用多次Init() : public void init(ServletConfig config) throws ServletException

5、; Servlet引擎會在Servlet實例化之后,置入服務(wù)之前精確地調(diào)用init方法。在調(diào)用service方法之前,init方法必須成功退出。 如果init方法拋出一個ServletException,你不能將這個Servlet置入服務(wù)中,如果init方法在超時范圍內(nèi)沒完成,我們也可以假定這個Servlet是不具備功能的,也不能置入服務(wù)中。Service() :public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException;Servlet引擎調(diào)

6、用這個方法以允許Servlet響應(yīng)請求。這個方法在Servlet未成功初始化之前無法調(diào)用。在Servlet被初始化之前,Servlet引擎能夠封鎖未決的請求。在一個Servlet對象被卸載后,直到一個新的Servelt被初始化,Servlet引擎不能調(diào)用這個方法每次請求都會被調(diào)用但是不會被覆蓋,覆蓋的是相應(yīng)的do 方法Destroy():public void destroy(); 當(dāng)一個Servlet被從服務(wù)中去除時,Servlet引擎調(diào)用這個方法。在這個對象的service方法所有線程未全部退出或者沒被引擎認(rèn)為發(fā)生超時操作時,destroy方法不能被調(diào)用。這個方法給servlet釋放占用的

7、資源的機(jī)會,通常用來執(zhí)行一些清理任務(wù)。服務(wù)器關(guān)閉時才銷毀這個Servlet對象5、下列方式中可以執(zhí)行TestServlet (路徑為/test)的doPost()方法是_(多選)A、在IE中直接訪問 action=”網(wǎng)站名/test”提交表單C、提交表單D、在JavaScript中執(zhí)行下述代碼:(“form1”).action=”/網(wǎng)站名/test”;(“form1”).method=”post”;(“form1”).submit;參考答案:C、DA.在地址欄上訪問 是get方式B在表單里如果不寫method,默認(rèn)也是get方式6、針對下述JSP頁面,在Servlet中需要得到用戶選擇的愛好的

8、數(shù)量,最合適的代碼時_網(wǎng)絡(luò); 朋友推薦; 報紙; 其他;A、(“aihao”).lengthB、(“aihao”).sizeC、(“aihao”).lengthD、(“aihao”).size參考答案:C從表單中獲取多個值用getParameterValues,求數(shù)組的長度為length。7、用戶使用POST方式提交的數(shù)據(jù)中存在漢字(使用GBK字符集),在Servlet中需要使用下面_個語句處理。A、(“GBK”);B、(“text/html;charset=GBK”);C、(“GBK”);D、(“text/html;charset=GBK”);參考答案:A其中D是設(shè)置響應(yīng)的方式的,A是設(shè)置請

9、求的方法。其他兩個是錯誤的。選擇:A8、簡述Servlet的生命周期。Servlet在第一次和第二次被訪問時,生命周期方法的執(zhí)行有何區(qū)別。參考答案:1、 在Servlet容器剛被啟動時加載,也可以在容器收到客戶請求服務(wù)時加載1標(biāo)簽配置該Servlet的加載方式,可選值為0和1,如果配置為會在啟動時候加載該Servlet,否則,Tomcat會在有人第一次請求該Servlet時才加載該Servlet2、 加載成功后,Servlet容器便可以創(chuàng)建一個Servlet實例。Servlet加載并實例化后,在處理客戶端請求前,容器必須通過調(diào)用它的init方法進(jìn)行初始化3、 實例創(chuàng)建好后,就要對其初始化。Se

10、rvlet的init()方法的主要任務(wù)就是完成初始化工作。該方法由Servlet容器調(diào)用完成。對于每一個Servlet實例,該方法只允許被調(diào)用一次。4、 利用 service 處理請求在Servlet被成功初始化后容器就可以使用它去處理客戶端發(fā)來的請求了。在使用HTTP協(xié)議發(fā)送請求時,容器必須提供代表請求和回應(yīng)的HttpServletRequest對象和HttpServlerRespons5、利用destroy()方法終止服務(wù)在Servlet執(zhí)行完畢或是在處理請求過程中出現(xiàn)UnavailiableException異常,需要移除Servlet,在移除之前,Servlet會調(diào)用destroy()

11、方法讓Servlet自動釋放占用的資源。l 第一次訪問時會執(zhí)行init()方法,第二次訪問不會執(zhí)行init()方法。9、簡述轉(zhuǎn)發(fā)和重定向跳轉(zhuǎn)方式的區(qū)別,在Servlet中分別使用什么方法實現(xiàn)重定向跳轉(zhuǎn)方式的區(qū)別:轉(zhuǎn)發(fā)和重定向都可以使瀏覽器獲得另外一個URL所指向的資源,區(qū)別是轉(zhuǎn)發(fā)共享同一個請求對象,而重定向不共享同一個請求對象。在Servlet中分別使用什么方法實現(xiàn)在Servlet中轉(zhuǎn)發(fā)使用RequestDispatcher接口的forward()方法實現(xiàn)。重定向由HttpServletResponse接口的sendRedirect()方法實現(xiàn)。第二章 Servlet會話跟蹤1、下列關(guān)于Coo

12、kie的說法正確的是_.(多選)A、Cookie保存在客戶端B、Cookie可以被服務(wù)器修改C、Cookie中可以保存任意長度的文本D、瀏覽器可以關(guān)閉Cookie功能參考答案:A、B、DCookie是保存在客戶端的,也可以被服務(wù)器修改,但是Cookie的長度是有限的,瀏覽器可以關(guān)閉Cookie功能。2、寫入和讀取Cookie的代碼分別是_A、()和();B、()和();C、()和();D、()和();參考答案:D3、Tomcat的默認(rèn)端口是_A、80B、8080C、8088D、8000參考答案:B 4、 HttpServletRequest的_方法可以得到會話(多選)A、getSession(

13、)B、getSession(Boolean)C、getRequestSession();D、getHttpSession();參考答案:A、B(參看p38)5、 下列選項中可以關(guān)閉會話的是_(多選)A、調(diào)用HttpSession的close方法B、調(diào)用HttpSession的invalidate()方法C、等待HttpSession超時D、調(diào)用HttpServletRequest的getSession(false)方法參考答案:A、B、 C、DHttpSession的invalidate()方法,使得回話失效,同時刪除屬性對象等待HttpSession超時Session失效。public Ht

14、tpSession getSession();返回與這個請求關(guān)聯(lián)的當(dāng)前的有效的session。如果調(diào)用這個方法時沒帶參數(shù),那么在沒有session與這個請求關(guān)聯(lián)的情況下,將會新建一個session。public HttpSession getSession(boolean create); 調(diào)用這個方法時帶入了一個布爾型的參數(shù),只有當(dāng)這個參數(shù)為真時,session才會被建立。HttpServletRequest的getSession(false)方法為了確保session能夠被完全維持。Servlet開發(fā)者必須在響應(yīng)被提交之前調(diào)用該方法。 如果帶入的參數(shù)為假,而且沒有session與這個請求關(guān)

15、聯(lián)。這個方法會返回空值。6、 在HttpSession中寫入和讀取數(shù)據(jù)的方法是_A、setParameter()和getParameter()B、setAttributer()和getAttribute()C、addAttributer()和getAttribute()D、set()個get()參考答案:getParameter()是獲取參數(shù),addAttributer()是保存Cookie到客戶端set()和get()是一對修改屬性的方法,、下列關(guān)于ServletContext的說法正確的是_(多選)A、一個應(yīng)用對應(yīng)一個ServletContextB、ServletContext的范圍比Se

16、ssion的范圍要大。C、第一個會話在ServletContext中保存了數(shù)據(jù),第二個會話讀取不到這些數(shù)據(jù)D、ServletContext使用setAttributer()和getAttribute()方法操作數(shù)據(jù)。參考答案:A、B、DServlet上下文是運(yùn)行Servlet的邏輯容器,同一個上下文中共享存有其中的信息和屬性,在Servlet中定義了一個ServletContext接口,用于存取Servlet運(yùn)行的環(huán)境或者上下文信息。ServletContext對象可以通過使用ServletConfig對象的getServletContext()方法獲得,在Servlet中提供的getServ

17、letContext()方法也可是直接獲得ServletContext對象。l getServletContext: public ServletContext getServletContext(); 返回這個Servlet的ServletContext對象。8、關(guān)于HttpSession的getAttibute()和setAttribute()方法,正確的說法是_(多選)A、getAttributer()方法返回類型是StringB、getAttributer()方法返回類型是ObjectC、setAttributer()方法保存數(shù)據(jù)時如果名字重復(fù)會拋出異常D、setAttributer(

18、)方法保存數(shù)據(jù)時如果名字重復(fù)會覆蓋以前的數(shù)據(jù)參考答案:B、DServlet API解釋如下:getAttributename)Returns the object bound with the specified name in this session, or null if no object is bound under the name.可以運(yùn)行以下代碼測試:HttpSession session=();(name, limei);(name, liyan);(ppp:+(name);9、使得HttpSession失效的三種方式是_、_、和_參考答案:關(guān)閉瀏覽器、調(diào)用session的i

19、nvalidate方法和等待session超時10、測試在其他瀏覽器下Session的生命周期,如:Firefox、Chrome等。略。第三章 JSP基礎(chǔ)1、下列關(guān)于JSP執(zhí)行過程的說法正確的是_ (多選)A、JSP在容器啟動時會被翻譯成Servlet,并編譯為字節(jié)碼文件。B、JSP在第一次被請求時會被翻譯成Servlet,并編譯成字節(jié)碼文件。C、在第二次請求時,將不再執(zhí)行翻譯步驟D、如果JSP頁面有錯誤將不再執(zhí)行翻譯步驟。參考答案:B、C、DJSP是一種Servlet,但是與HttpServlet的工作方式不太一樣。HttpServlet是先由源代碼編譯為class文件后部署到服務(wù)器下,先編

20、譯后部署。而JSP則是先部署源代碼后編譯為class文件的。先部署后編譯。JSP會在客戶端第一次請求JSP文件時被編譯為HttpJspPage(接口Servlet的一個子類),該類被服務(wù)器臨時存放在服務(wù)器的工作目錄里面。舉例說明JSP編譯過程:客戶端第一次請求。Tomcat首先將jsp文件轉(zhuǎn)化為標(biāo)準(zhǔn)的Java源代碼,存放在Tomcat工作目錄下,并將其編譯為,編譯完后再運(yùn)行class文件來響應(yīng)客戶端請求。以后訪問jsp時,服務(wù)器將不再重新編譯JSP文件而是直接調(diào)用class文件來響應(yīng)客戶端請求。2、下列不屬于JSP構(gòu)成元素的是_A、腳本B、聲明C、表達(dá)式D、JavaScript 參考答案:D3

21、、下列注釋方式可以再JSP中使用并且客戶端無法查看的是_A、B、C、D、參考答案:C 在JSP頁面中可以使用的方式來注釋,服務(wù)器編譯JSP時會會忽略之間的內(nèi)容,所以生成的注釋在客戶端是看不到的。4、下列JSP表達(dá)式的寫法正確的是_(多選)A、B、C、%=new 、參考答案:A、B、C、D都是表達(dá)式,abcdefg是字符串,length()是求該字符串的長度,123是數(shù)字,會自動轉(zhuǎn)為字符,new 是一個匿名對象,顯示當(dāng)前的系統(tǒng)時間。This代表本類對象的引用變量。其值為。1、 在JSP頁面中有下述代碼,第二次訪問此頁面的輸出是_ ,A、0,0B、0,1C、1,0D、1,1參考答案:C聲明中定義的

22、是全局變量,可以在整個應(yīng)用中使用。所以第二次訪問時變量x為1,以后每次訪問會自增,而在腳本中定義的變量只在本頁面內(nèi)有效。第二次訪問和第一次訪問一樣沒有變化都是0.2、 找出下述代碼中的錯誤參考答案:修改為.表達(dá)式后面不允許有分號。3、 編寫JSP頁面,輸出100以內(nèi)的素數(shù)核心參考代碼% int m,i,j; boolean f;for(i=2;i=100;i+)f=true;m=(int)(i); for(j=2;j第四章 JSP指令和動作1、下列page指令的使用正確的是_(多選)A、B、C、D、參考答案:B、DImport屬性可以在當(dāng)前頁中引入JSP腳本代碼中需要用到的其他類,需要引入多個

23、類或包時,可以在中間使用逗號隔開:或使用多個page指令:2、下列useBean標(biāo)準(zhǔn)動作使用正確的是_A、B、C、D、參考答案:AId指定該JavaBean的實例的變量名,通過這個id可以訪問這個實例。class指定JavaBean的類名,如果需要創(chuàng)建一個新的實例,容器會使用class類指定的類并調(diào)用午餐構(gòu)造方法來完成實例化。scope指定JavaBean的作用范圍。type 指定JavaBean對象的類型,通常在查找已存在的JavaBean時使用,這時不會產(chǎn)生新的對象。3、下列setProperty標(biāo)準(zhǔn)動作使用正確的是_(多選)A、B、C、D、參考答案:A、Cname指定JavaBean對象

24、名,與userBean標(biāo)準(zhǔn)動作中的id相對應(yīng),property指定JavaBean中需要賦值的屬性名,value指定屬性設(shè)置的值,參數(shù)param指定請求中的參數(shù)名(該參數(shù)可以來自于表單(URL傳遞參數(shù)等).4、下列關(guān)于getProperty標(biāo)準(zhǔn)動作的說法正確的是_(多選)A、當(dāng)JavaBean不存在所訪問的屬性時,顯示nullB、當(dāng)JavaBean不存在所訪問的屬性時,發(fā)生異常C、getProperty標(biāo)準(zhǔn)動作實際上是調(diào)用對應(yīng)屬性的get方法D、以上都不對。參考答案:B、C5、存在以下JavaBean和JSP頁面package x;public class Person String name

25、;public String getName() return name;public void setName(String name) = name; 訪問 property=name name=p param=names/name指定JavaBean對象名,與useBean標(biāo)準(zhǔn)動作中的id相對應(yīng)。property 指定JavaBean中需要賦值的屬性名value指定要為屬性設(shè)置的值param指定請求中的參數(shù)名(該參數(shù)可以來自表單、URL傳遞參數(shù)等)并將該參數(shù)的值賦給property所指定的屬性)從地址欄上傳遞的參數(shù)是name,JSP頁面中設(shè)置的參數(shù)為names,所以該參數(shù)沒有獲得值,對應(yīng)

26、屬性中的值為value=”Mike”中的值Mike6、廣義上講,滿足_、_和_三個要求的Java類可以稱為JavaBean ,參考答案:(1)是一個公共類 含有公有的無參構(gòu)造方法 (2)屬性私有 (3)屬性具有公有的get和set方法7、簡述include指令和include標(biāo)準(zhǔn)動作的區(qū)別。在Servlet中,可以include另外一個資源(Servlet或JSP),在JSP中也有類似的概念,不過它有兩種,其一是靜態(tài)Include,另外一種是動態(tài)Include。靜態(tài)Include是JSP指令標(biāo)記。其中file可以是HTML文件、Servlet文件或者另外一個JSP文件動態(tài)IncludeIncl

27、ude標(biāo)準(zhǔn)動作用于在JSP頁面動態(tài)包含其他頁面。該動作的功能和JSP的include指令類似,區(qū)別在于include指令是在編譯時完成包含,是靜態(tài)包含;而include標(biāo)準(zhǔn)動作是在運(yùn)行時完成包含,是動態(tài)包含。第五章 JSP內(nèi)置對象1、下列屬于JSP內(nèi)置對象的是_(多選)A、requestB、responseC、sessionD、servletContext參考答案:A、B、CJSP內(nèi)置對象有9個:request、response、session、application、out、pageContext、config、page、exception.2、下列關(guān)于JSP內(nèi)置對象的說法正確的是_(多選)

28、 A、內(nèi)置對象無需定義,可直接使用 B、內(nèi)置對象無法再JSP的聲明部分使用 C、內(nèi)置對象只能在JSP腳本部分使用。 D、只有使用Tomcat作為JSP容器時才能使用內(nèi)置對象。參考答案:JSP內(nèi)置對象是指由JSP容器加載的,不用聲明就可以直接在JSP頁面中使用的對象。3、下列request和response內(nèi)置對象的使用正確的是_(多選)A、(“”).forward();B、(“”);C、(“name”);D、(“text/html;charset=gbk”);參考答案:B、C、Dl request常用的方法有:String getParameter (String name):根據(jù)參數(shù)名稱得到

29、單一參數(shù)值String getParameterValues(String name):根據(jù)參數(shù)名稱得到一組參數(shù)值。l response常用方法:(1)void setContentType(String name):設(shè)置相應(yīng)內(nèi)容的類型和字符編碼例如:設(shè)置響應(yīng)內(nèi)容類型為text/html,字符編碼為gbk(“text/html;charset=gbk”);(2)void sendRedirect(String url):重定向到指定的URL資源例如:使用response對象的sendRedirect()方法實現(xiàn)頁面的重定向 (“”);4、 在中有下述代碼A、 JSPJSPB、 nullJSPC

30、、JSP JSPD、null JSP參考答案:D在 中分別在request和session范圍內(nèi)保存了數(shù)據(jù),然后重定向到頁面,在頁面中輸出名稱為name的值,request范圍內(nèi)只在當(dāng)前頁面有效,session在會話中有效,故選擇D,輸出沒有換行。所以不選擇B5、 pageContext、request、session、application四個內(nèi)置對象的作用范圍從小到大依次為_A、 request、pageContext、session、applicationB、 request、session、pageContext、applicationC、 request、session、applic

31、ation、pageContextD、 pageContext、request、session、application參考答案:DpageContext的范圍是當(dāng)前頁面,在一個JSP頁面有效request的指從HTTP請求到服務(wù)器處理結(jié)束,返回響應(yīng)的整個過程,在這個過程中使用forward方法跳轉(zhuǎn)多個JSP,在這些頁面里都可以使用這個變量。session的有效范圍是當(dāng)前會話,從瀏覽器打開到瀏覽器關(guān)閉這個過程。application的有效范圍是整個應(yīng)用程序,作用域中的變量,它們的存活期是最長的,如果不進(jìn)行手工刪除,它們就一直可以使用。6、 在Servlet的doGet()和doPost()方法中,如何得到與JSP內(nèi)置對象out、request、rsponse、session、application分別對應(yīng)的對象(1)可以通過以下代碼獲取out對象:PrintWriter out = ();(2)Servlet直接繼承了HttpServlet類,可以直接使用request和response對象 (3)可以通過以下代碼獲取session對象HttpSession session=();(4)application是類的對象 Application對象需要通過()來獲取。 Se

溫馨提示

  • 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

提交評論