ServletJSP課后習(xí)題解答_第1頁(yè)
ServletJSP課后習(xí)題解答_第2頁(yè)
ServletJSP課后習(xí)題解答_第3頁(yè)
ServletJSP課后習(xí)題解答_第4頁(yè)
ServletJSP課后習(xí)題解答_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持. 第 1 章課后練習(xí) 選擇題 1. 以下何者適合使用 GET 請(qǐng)求來(lái)發(fā)送? (A)使用者名稱、密碼 (B)檢視論譠頁(yè)面 (C)信用卡資料 (D)查詢數(shù)據(jù)的分頁(yè) 答案:B、D 提示:敏感性數(shù)據(jù)不應(yīng)使用 GET 來(lái)發(fā)送。論譠頁(yè)面、數(shù)據(jù)分頁(yè)可以使用 GET , 便于使用者設(shè)定為書(shū)簽。 2. 以下何者應(yīng)該使用 POST 請(qǐng)求來(lái)發(fā)送? (A) 使用者名稱、密碼 (B) 檔案上傳 (C) 搜尋引擎的結(jié)果畫(huà)面 (D) BLOG 文件 答案: A、 B、 D 提示:敏感性數(shù)據(jù)、大量數(shù)據(jù)不應(yīng)使用 GET 來(lái)發(fā)送。搜尋引擎結(jié)果畫(huà)面可以使 用 GET ,

2、便于使用者設(shè)定為書(shū)簽。 3. HTTP 哪個(gè)請(qǐng)求方式,請(qǐng)求參數(shù)會(huì)出現(xiàn)在網(wǎng)址列上? (A)GET (B)POST 答: A 4. 以下何者適合使用 GET 請(qǐng)求來(lái)發(fā)送? (A) 檢視靜態(tài)頁(yè)面 (B) 查詢商品數(shù)據(jù) (C) 新增商品資料 (D) 刪除商品數(shù)據(jù) 答案: A、 B 提示:這題在考等冪操作,不改變服務(wù)器狀態(tài)的查詢應(yīng)使用 GET 5. 以下何者應(yīng)該使用 POST 請(qǐng)求來(lái)發(fā)送? (A) (B) (C) (D) 答案: B、 查詢商品數(shù)據(jù) 新增商品資料 更新商品數(shù)據(jù) 刪除商品數(shù)據(jù) C、 D POST。 提示:這題在考非等冪操作,會(huì)改變服務(wù)器狀態(tài)的查詢應(yīng)使用 6. 以下何者是屬于客戶端執(zhí)行的程序

3、? (A) JSP (B) JavaScript (C) Servlet (D) Applet 答案 :B、D 7. Servlet JSP 主要是屬于哪個(gè) Java 平臺(tái)的規(guī)范之中 (A) Java SE (B) Java ME (C) Java EE 答: C 8. Servlet JSP 必須基于哪一類型的容器才能提供服務(wù)? (A) Applet 容器 (B) 應(yīng)用程序客戶端容器 (C) Web 容器 (D) EJB 容器 答: C 9. Web 容器在收到瀏覽器請(qǐng)求時(shí),會(huì)如何處理請(qǐng)求? (A) 使用單一執(zhí)行緒處理所有請(qǐng)求 (B) 一個(gè)請(qǐng)求就建立一個(gè)執(zhí)行緒來(lái)處理請(qǐng)求 (C) 一個(gè)請(qǐng)求就建

4、立一個(gè)行程來(lái)處理請(qǐng)求 (D) 一個(gè)請(qǐng)求就執(zhí)行一個(gè)容器來(lái)處理請(qǐng)求 答: B 10. Java EE 中各技術(shù)標(biāo)準(zhǔn)最后將由什么文件明訂規(guī)范? (A) JCP (B) JSR (C) JDK 答: B 提示 : JCP 是組織名稱。 JDK 是 Java 開(kāi)發(fā)工具箱名稱。 第 2 章課后練習(xí) 選擇題 1. 若要針對(duì) HTTP 請(qǐng)求撰寫(xiě) Servlet 類別,以下何者是正確的作法? (A) 實(shí)作 Servlet 界面 (B) 繼承 GenericServlet (C) 繼承 HttpServlet (D) 直接定義一個(gè)結(jié)尾名稱為 Servlet 的類別 答案: C 2. 續(xù)上題, 如何針對(duì) HTTP

5、的 GET 請(qǐng)求進(jìn)行處理與響應(yīng)? (A) 重新定義 service()方法 (B) 重新定義 doGet() 方法 (C) 定義一個(gè)方法名稱為 doService() (D) 定義一個(gè)方法名稱為 get() 答案: B 提示:不建議也不應(yīng)重新定義 HttpServlet 所繼承下來(lái)的 service() 方法。 3. HttpServlet 是定義在哪個(gè)套件之中? (A)javax.servlet (B)java.http (C)javax.http 答案:B 提示:與 Servlet 定義相關(guān)的類別或接口都位于 javax.servlet 套件之中, 像 是 Servlet、GenericS

6、ervlet、 ServletRequest、ServletResponse 等 。 與 HTTP 定 義 相 關(guān) 的 類 別 或 接 口 都 位 于 , 像 是 HttpServlet 、 HttpServletRequest 、 HttpServletResponse 等。 4. 你在 web.xml 中定義了以下的內(nèi)容: Goodbye GoodBye /goodbye 哪個(gè) URL 可以正確的要求 Servlet 進(jìn)行請(qǐng)求處理? (A)/GoodBye B) C) D) /goodbye.do /LoguotServlet /goodbye 答案:D 5. 在 Web 容器中,以下哪兩

7、個(gè)類別的實(shí)例分別代表 HTTP 請(qǐng)求與響應(yīng)對(duì)象? (A)HttpRequest (B)HttpServletRequest (C)HttpServletResponse (D)HttpPrintWriter 答案: B、C 6. 在Web應(yīng)用程序中,何者負(fù)責(zé)將HTTP請(qǐng)求轉(zhuǎn)換為HttpServletRequest 物件? (A)Servlet 物件 (B)HTTP 服務(wù)器 (C)Web 容器 (D)JSP 網(wǎng)頁(yè) 答案: C 7. 在 Web 應(yīng)用程序的檔案與目錄結(jié)構(gòu)中, web.xml 是直接放置在哪個(gè)目錄之 中? (A) WEB-INF 目錄 (B) conf 目錄 (C) lib 目錄 (

8、D) classes 目錄 答案: A 8. 你在 web.xml 中定義了以下的內(nèi)容: HelloServlet HelloServlet /hello 這個(gè) web.xml 中的定義有哪些錯(cuò)誤? (A) 標(biāo)簽中的設(shè)定一定要用 .do 作結(jié)尾 (B) 標(biāo)簽應(yīng)改為 ,結(jié)尾標(biāo)簽名稱 也要修改 (C) 標(biāo)簽應(yīng)改為 ,結(jié)尾標(biāo)簽名稱也 要修改 (D) 標(biāo)簽應(yīng)改為 ,結(jié)尾標(biāo)簽名 稱也要修改 答案:B、C 提示: 可以無(wú)需 .do 結(jié)尾,也可以用萬(wàn)用字符( wildcard ),例 如*.do將會(huì)讓所有以.do結(jié)尾的請(qǐng)求由該Servlet進(jìn)行處理。 9. 在 MVC 架構(gòu)中,誰(shuí)負(fù)責(zé)通知應(yīng)用程序客戶端,應(yīng)用

9、程序本身有狀態(tài)改變? (A) 模型(Model) (B) 視圖( View) (C) 控制器( Controller ) 答案: A 10. MVC 與 Model 2 架構(gòu)最大的差別在于? (A) Model 2 架構(gòu)的視圖是由 HTML 組成 (B) Model 2 架構(gòu)中的模型無(wú)法通知視圖狀態(tài)已更新 (C) MVC 架構(gòu)是基于請(qǐng)求響應(yīng)模型 (D) MVC 架構(gòu)只能用于單機(jī)應(yīng)用程序 答案: B 提示: Model 2 架構(gòu)中呈現(xiàn)視圖的技術(shù)并沒(méi)有限制。 MVC 架構(gòu)也可以應(yīng)用于 3-tier 的網(wǎng)絡(luò)架構(gòu)中,其中模型通知視圖時(shí),可以透過(guò) Socket 聯(lián)機(jī)來(lái)進(jìn)行。 實(shí)作題 1. 講師提示:這個(gè)

10、練習(xí)在讓學(xué)生動(dòng)手實(shí)作 HttpServlet 的繼承、 web.xml 的定義,并能夠自行查詢?cè)诰€ API 文件,了解 HttpServletRequest 有 哪些方法可以利用。 2. 提示:這個(gè)練習(xí)在讓學(xué)生動(dòng)作撰寫(xiě)窗體 (學(xué)生必須自行學(xué)習(xí)基本的 HTML ), 了解GET與POST如何在Servlet中進(jìn)行處理,學(xué)生必須重新定義doPost() 方法,并了解如何在 Servlet 中撰寫(xiě)判斷分支來(lái)呈現(xiàn)不同條件下的結(jié)果畫(huà)面。 第 3 章課后練習(xí) 課后練習(xí) 選擇題 1. 以下的空格應(yīng)該填入哪個(gè)方法? response.setContentType(text/html;charset=UTF-8

11、); PrintWriter out = response.; out.println(); ( A) getPrintWriter() ( B) getWriter() ( C) getBufferedWriter() ( D) getOutputWriter() 答案: B 2. 請(qǐng)問(wèn)以下的 Servlet 程序片段輸出結(jié)果為何? out.println( 第一個(gè) Servlet 程序 ); out.flush(); request.getRequestDispatcher(message.jsp) .forward(request,response); out.println(Hello

12、!World!); (A) 顯示 第一個(gè) Servlet 程序后轉(zhuǎn)發(fā) message.jsp (B) 顯示第一個(gè) Servlet 程序與Hello!World! ( C)直接轉(zhuǎn)發(fā)給 message.jsp 進(jìn)行響應(yīng) ( D)丟出 IllegalStateException 答案:A 提示 : 在 flush() 之后響應(yīng)已確認(rèn),此時(shí)再 forward() 就會(huì)發(fā)生 IllegalStateException。 3. 你將 secret.jsp 檔案放在 WEB-INF 目錄中,哪個(gè)方式或程序片段可以正確 讓 secret.jsp 進(jìn)行響應(yīng)? ( A)使用瀏覽器請(qǐng)求 /WEB-INF/secre

13、t.jsp ( B)request.getRequestDispatcher(/WEB-INF/secret.j sp) 并進(jìn)行 forward() ( C)使用 response.sendRedirect(/WEB-INF/secret.jsp) ( D)使用 response.sendError(/WEB-INF/secret.jsp) 答案:B 4. 如果想知道使用者所使用的瀏覽器版本等相關(guān)訊息, 可以執(zhí)行哪一段程序代 碼: (A) request.getHeaderParameter(User-Agent) (B) request.getParameter(User-Agent) (C

14、) request.getHeader(User-Agent) (D) request.getRequestHeader(User-Agent) 答案: C 5. 如果想取得輸出串流對(duì)象對(duì)瀏覽器輸出位數(shù)據(jù), 應(yīng)該撰寫(xiě)哪一段程序代碼? ( A)ResponseStream out = response.getResponseStream(); (B)ResponseStream out = response.getStream(); ( C)ResponseStream out = response.getOutputStream(); ( D)ServletOutputStream out =

15、 response.getOutputStream(); 答案: D 6. 哪幾個(gè)程序代碼可以取得 password 請(qǐng)求參數(shù)的值 ? (A) request.getParameter(password); (B) request.getParameters(password)0; (C) request.getParameterValues(password)0; (D) request.getRequestParameter(password); 答案: A、C 提示: getParameterValues() 會(huì)用字符串?dāng)?shù)組傳回指定的請(qǐng)求參數(shù)值, 如果 請(qǐng)求參數(shù)只有一個(gè)值,則透過(guò)指定索引

16、值 0 也可取得該值。 7. 下面這個(gè)程序代碼片段會(huì)輸出什么結(jié)果? PrintWriter writer = response.getWriter(); writer.println(第一個(gè) Servlet程序 ); OutputStream stream = response.getOutputStream(); stream.println(第一個(gè) Servlet程序 .getBytes(); (A) 瀏覽器會(huì)看到兩段 第一個(gè) Servlet程序 的文字 (B) 瀏覽器會(huì)看到一段 第一個(gè) Servlet程序 的文字 (C) 丟出 IllegalStateException (D) 由于沒(méi)有

17、正確地設(shè)定內(nèi)容類型( content-type ),瀏覽器會(huì)提示 另存新檔 答案: C 提示:同一個(gè)請(qǐng)求周期中, HttpServletResponse 的 getWriter() 與 getOutputStream()只 能 擇 一 使 用 , 否 則 會(huì) 丟 出 IllegalStateException。 8. 如果要設(shè)置響應(yīng)的內(nèi)容類型標(biāo)頭,哪幾個(gè)選項(xiàng)是正確的作法? (A) response.setHeader(Content-Type,text/html); (B) resp on se.setC on te ntType(text/html); (C) respo nse.addHe

18、ader(Co nten t-Type,text/html); (D) resp on se.setC on te ntHeader(text/html); 答案:A、B、C 9. 下面哪個(gè)選項(xiàng),可以正確地追加自訂標(biāo)頭MyHead的值? (A) resp on se.setHeader(MyHeader, Value2); (B) resp on se.appe ndHeader(MyHeader, Value2); (C) respo nse.addHeader(MyHeader, Value2); (D) respo nse.i nsertHeader(MyHeader, Value2);

19、 答案:C 10. 哪幾個(gè)方法是定義在 HttpServletRequest 中,而非由ServletRequet 中繼承而來(lái)? (A) getMethod() (B) getHeader() (C) getParameter() (D) getCookies() 答案:A、 B、C 提示:與HTTP請(qǐng)求有關(guān)的方法,是定義在 HttpServletRequest 中,與通 用請(qǐng)求有關(guān)的,是定義在 ServletRequest 中,例如getParameter() 。 實(shí)作題: 1. 請(qǐng)實(shí)作一個(gè)Web應(yīng)用程序,可以將使用者所發(fā)送的name請(qǐng)求參數(shù)值畫(huà)在 一張圖片上(參考下圖,底圖可任選)。 提示

20、:可在搜尋引擎下關(guān)鍵詞動(dòng)態(tài)產(chǎn)生圖片尋找解答。參考 /JSPServlet/Dy namiclmage.htm ,畫(huà)圖的部份不難,主要讓學(xué)生練習(xí)如何取得 請(qǐng)求參數(shù)、如何使用ServletOutputStream以及利用搜尋引擎尋找解答的能力。 圖3.20根據(jù)使用者輸入動(dòng)態(tài)產(chǎn)生圖片內(nèi)容 2. 請(qǐng)實(shí)作一個(gè)Web應(yīng)用程序,可動(dòng)態(tài)產(chǎn)生使用者登入密碼(參考下圖,僅需 先確作出動(dòng)態(tài)產(chǎn)生密碼圖片的功能即可,送出窗體后的密碼驗(yàn)證功能還不用 實(shí)現(xiàn))。 提示:主要是上一題練習(xí)的延伸,隨機(jī)產(chǎn)生四個(gè)數(shù)字,再畫(huà)到圖片上。這個(gè)練習(xí) 可結(jié)合Session屬性的運(yùn)用,就可實(shí)作出登入的部份,在第5章講到Session 對(duì)象時(shí)會(huì)再

21、要求實(shí)作登入的機(jī)制。 圖3.21動(dòng)態(tài)產(chǎn)生登入密碼 8文檔收集于互聯(lián)網(wǎng),如有不妥請(qǐng)聯(lián)系刪除 文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持. 第 4 章課后練習(xí) 課后練習(xí) 選擇題 1. 如果是整個(gè)應(yīng)用程序會(huì)共享的數(shù)據(jù), 則適合存放在哪個(gè)對(duì)象之中成為屬性? (A) ServletConfig (B) ServletContext (C) ServletRequest (D) Session 答案: B 2. 如果要取得 ServletContext 初始參數(shù),則可以執(zhí)行哪個(gè)方法? (A) getContextParameter() (B) getParameter() (C) get

22、InitParameter() (D) getAttribute() 答案: C 3. 假設(shè)一段程序代碼如下,其中 PARAM 為設(shè)定于 web.xml 中的初始參數(shù): public class SomeServlet extends HttpServlet private String param; public SomeServlet() param = getInitParameter(PARAM); 以下何者正確? (A) param 被設(shè)定為 web.xml 中的初始參數(shù)值 (B) 無(wú)法通過(guò)編譯 (C) 應(yīng)該改用 getServletParameter()方 (D) 發(fā)生 NullP

23、ointerException 答案: D 提示:get In itParameter()也是透過(guò)ServletCo nfig來(lái)取得初始參數(shù),在 建構(gòu)式執(zhí)行時(shí),由于尚未進(jìn)行 Servlet 初始化, ServletConfig 尚未經(jīng)由 init() 方法傳入 Servlet 之中, 所以建構(gòu)式中嘗試取得初始參數(shù)時(shí)就會(huì)發(fā)生 NullPointerException。 9文檔收集于互聯(lián)網(wǎng),如有不妥請(qǐng)聯(lián)系刪除 文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持. 4. 繼承 HttpServlet 之后,若要進(jìn)行 Servlet 初始化,重新定義哪個(gè)方法才是正 確的作法? (A)publ

24、ic void init(ServletConfigconfig) throws ServletException; (B)public void init() throws ServletException (C)public String getInitParameter(String name) (D)public Enumeration getInitParameterNames() 答案:B 5. 關(guān)于 ServletContext 初始參數(shù),以下哪兩項(xiàng)是 web.xml 中正確的設(shè)定? (A) PARAM VALUE (B) PARAM VALUE (C) PARAM1 VALUE

25、1 PARAM1 VALUE1 (D) PARAM1 VALUE1 PARAM2 VALUE2 答案: B、D 6. 若要讀取 WEB-INF/data.txt 檔案的數(shù)據(jù),以下哪個(gè)是正確的作法? (A)FileInputStream input = new FileInputStream(/WEB-INF/data.txt); (B)FileInputStream input = new FileInputStream( new File(/WEB-INF/data.txt); (C)InputStream input = getResourceAsStream(/WEB-INF/data.

26、txt); (D) FileInputStream input = getResourceAsStream(/WEB-INF/data.txt); 答案:C 7. ServletContext 定義與屬性相關(guān)的方法是哪三個(gè)? (A) getAttribute(); (B) setAttribute(); (C) deleteAttribute() (D) removeAttribute(); 答案: A、 B、D 8. 若 web.xml 中有以下的設(shè)定: Some param1 1 param2 2 而某個(gè) Servlet 撰寫(xiě)了以下的程序代碼: public void init() thr

27、ows ServletException super.init(); int param1 = getInitParameter(param1); int param2 = getInitParameter(param2); 以下何者描述正確? (A) 第二對(duì) 、可以直接撰寫(xiě)在第一個(gè) 之中 (B) param1 的值為 1 , param2 的值為 1 (C) 應(yīng)該在建構(gòu)式中進(jìn)行初始參數(shù)的取得 (D) Servlet 類別原始檔無(wú)法通過(guò)編譯 答案: D 提示: getInitParameter()取得的是字符串。 9. 哪幾個(gè)對(duì)象提供有 getAttribute() 方法? (A) Servl

28、etRequest (B) HttpServlet (C) ServletConfig (D) ServletContext 答案: A、 D 提示:事實(shí)上還有一個(gè), HttpSession 對(duì)象。只不過(guò)到本章還沒(méi)介紹到 HttpSession 的使用。 10. 在 web.xml 中有以下的設(shè)定: 以下何者正確? (A)SomeListener 類別要實(shí)作 ServletContextListener接口 (B)每生成一個(gè) Servlet 實(shí)例就會(huì)呼叫 ServletContextListener 的 init() 方法 (C)Web 應(yīng)用程序初始化之后, 會(huì)呼叫 ServletContex

29、tListener 的 contextInitialized()方法 (D)不需要 這個(gè)標(biāo)簽 答案:A、C 實(shí)作題 1. 請(qǐng)使用目前所學(xué)得的 Servlet 相關(guān)技巧,實(shí)作一個(gè)在線留言版程序,其中必 須包括以下的功能: (1). 有個(gè)檔案會(huì)儲(chǔ)存留言, 應(yīng)用程序初始時(shí),必須從該檔案中加載留言記錄。 (2). 觀看留言功能,每筆留言中包括了留言者的頭像、 名稱與留言訊息。 下圖是個(gè)簡(jiǎn)單的示范。 圖 4.8 觀看留言 (3). 動(dòng)態(tài)留言窗體功能,新增留言時(shí)使用的窗體。其中包括了輸入留言 者名稱、留言的字段, 并可以讓使用者選取頭像。 頭像存放的目錄可以 由 Servlet 初始參數(shù)設(shè)定。窗體必須可以

30、自動(dòng)顯示頭像存放目錄中的圖 片,有多少圖片就顯示多少個(gè)頭像。 若新增留言失敗也會(huì)將請(qǐng)求轉(zhuǎn)發(fā)回 窗體,此時(shí)要顯示錯(cuò)誤訊息以及使用者先前填寫(xiě)的名稱與留言。 下圖是 個(gè)簡(jiǎn)單的示范。 圖 4.9 新增留言窗體 (4) . 新增留言功能,必須作基本的請(qǐng)求參數(shù)檢查。留言失敗及成功的 URL ,必須可以由 Servlet 初始參數(shù)來(lái)設(shè)定。留言成功時(shí)必須顯示留言 成功訊息、使用者名稱、留言與頭像。下圖是個(gè)簡(jiǎn)單的示范。 圖 4.10 新增留言成功 提示:這個(gè)練習(xí)可以讓學(xué)生模仿書(shū)中在線書(shū)簽的制作流程與方式。 可建議學(xué)生先 如第 3 章實(shí)作簡(jiǎn)單的觀看留言及新增留言功能。再進(jìn)一步根據(jù)第 4章改 寫(xiě),利用 Servle

31、tConfig 讀取 Servlet 初始參數(shù),利用 ServletContext 讀取應(yīng)用程序初始參數(shù)等。 36文檔收集于互聯(lián)網(wǎng),如有不妥請(qǐng)聯(lián)系刪除 第 5 章課后練習(xí) 選擇題 1. 在瀏覽器禁用 Cookie 的情況下,哪些機(jī)制仍可以用于會(huì)話管理? (A) HttpSession (B) URL 重寫(xiě) (C) 隱藏字段 (D) Cookie API 答案:B、C 2. 如何設(shè)定 Cookie 的有效期限? (A) 使用 setMaxAge() (B) 使用 setMaxInactive() (C) 使用 setMaxInactiveInterval() (D) 在 web.xml 中設(shè)定

32、答案: A 3. web.xml 中vsessi on-timeout的設(shè)定單位是? (A) 時(shí) (B) 分 (C) 秒 (D) 毫秒 答案: B 4. 何者可以實(shí)作使用者的自動(dòng)登入機(jī)制? (A) HttpSession (B) Cookie (C) HttpServletRequest (D) URL 重寫(xiě) 答案: B 5. 關(guān)于 HttpSession 的 setMaxInactiveInterval()方法,以下描述何 者錯(cuò)誤? (A) 設(shè)定的單位是分 (B) 用來(lái)設(shè)定 HttpSession在瀏覽器多久沒(méi)活動(dòng)后失效 (C) 用來(lái)設(shè)定 Cookie 的失效時(shí)間 (D) 會(huì)覆蓋 web.x

33、ml 中 vsession-timeout 的設(shè)定 答案: A、 C 6. 關(guān)于 HttpSession 的描述,以下何者錯(cuò)誤? (A)關(guān)閉瀏覽器后 HttpSession 就會(huì)被回收 (B) 可以執(zhí)行 invalidate() 使之失效 (C) 不同的瀏覽 器使用 相同 的 Session ID, 也會(huì) 取得不 同的 HttpSession 對(duì)象 (D) HttpSession 的 setMaxInactiveInterval()方法設(shè)定為 -1 將永不失效 答案:A、C 提 示 : 關(guān) 閉 瀏 覽 器 后 立 即 失 效 的 是 儲(chǔ) 存 Session ID 的 Cookie , 不 是

34、HttpSession 對(duì)象。 7. 哪幾個(gè)對(duì)象提供有 setAttribute() 方法? (A) ServletRequest (B) HttpSession (C) ServletConfig (D) ServletContext 答案: A、 B、 D 8. 關(guān)于 Servlet JSP 的 Session ID ,何者正確? (A)預(yù)設(shè)使用 Cookie 來(lái)儲(chǔ)存 Session ID (B)Cookie 的名稱是 JSESSIONID (C)在禁用 Cookie 時(shí),可以使用 URL 重寫(xiě)來(lái)發(fā)送 Session ID (D)必須自行呼叫 HttpSession 的 getId() 方

35、可產(chǎn)生 答案: A、 C 提示: Session ID 的 Cookie 名稱是廠商各自實(shí)作的, JSESSIONID 在 Tomcat 上的實(shí)作名稱。容器會(huì)自動(dòng)幫你產(chǎn)生 Session ID 。 9. 哪幾個(gè)對(duì)象的屬性設(shè)定可以跨越請(qǐng)求范圍? (A)ServletRequest (B)HttpSession (C)ServletConfig (D)ServletContext 答案: B、 D 10. HttpSession 失效的時(shí)機(jī)為何? (A) 執(zhí)行 invaliate() 方法 (B) 下次請(qǐng)求超過(guò) web.xml 中 vsession-timeout 的設(shè)定時(shí)間 (C) 存活時(shí)間超過(guò)

36、 setMaxInactiveInterval() 方法設(shè)定的時(shí)間 (D) 關(guān)閉瀏覽器 答案: A、 B 提示:無(wú)論是 或 setMaxInactiveInterval()所設(shè)定 的時(shí)間,都是指瀏覽器沒(méi)有再次請(qǐng)求活動(dòng)的時(shí)間, 而不是指 HttpSession 本身 的存活時(shí)間。 實(shí)作題 1. 請(qǐng)實(shí)作一個(gè) Web 應(yīng)用程序,可動(dòng)態(tài)產(chǎn)生使用者登入密碼,送出窗體后必須 通過(guò)密碼驗(yàn)證才可觀看到使用者頁(yè)面。 提示:此題仍第 3 章課后練習(xí)第 2 個(gè)實(shí)作題之延伸。 圖 5.10 圖片驗(yàn)證 2. 實(shí)作一個(gè)登入窗體,如果使用者核取記住名稱、密碼 ,則下次造訪窗體 時(shí),將會(huì)自動(dòng)在名稱、密碼字段填入上次登入時(shí)所使

37、用的值。 圖 5.11 記住名稱、密碼 第 6 章課后練習(xí) 選擇題 1. 關(guān)于過(guò)濾器的描述,以下何者正確? (A)Filter 接口定義了 init()、service()與 destroy() 方法 (B)會(huì)傳入 ServletRequest 與 ServletResponse 至 Filter (C)要執(zhí)行下一個(gè)過(guò)濾器,必須執(zhí)行 FilterChaing 的 next() 方法 (D)如果要取得初始參數(shù),要使用 FilterConfig 物件 答案:B、D 2. 關(guān)于以下 web.xml 的設(shè)定: SecurityFilter SecurityFilter *.do USER caterp

38、illar PASSWORD 123456 以下描述何者正確? (A)根據(jù) ,過(guò)濾器會(huì)套用在所有以 .do 結(jié)尾的 URL請(qǐng)求 (B)可以透過(guò)FilterConfig來(lái)讀取USER與PASSWORD始參數(shù) ( C)初始參數(shù)設(shè)定位置錯(cuò)誤, 等標(biāo)簽應(yīng)放在 標(biāo)簽之中 ( D) 應(yīng)改為 才是正確設(shè)定 答案: A、 C 提示:由于初始參數(shù)的設(shè)定錯(cuò)誤,無(wú)法透過(guò) FilterConfig 取得初始參數(shù)。 3. 關(guān)于以下的 web.xml 設(shè)定: SecurityFilter /add.do SecurityFilter *.view CharacterFilter /add.do 以下描述何者正確? A)當(dāng)

39、請(qǐng)求 add.do 時(shí),只會(huì)套用 SecurityFilter B)當(dāng)請(qǐng)求 add.do 時(shí),過(guò)濾器的執(zhí)行順序?yàn)镾ecurityFilter CharacterFilter C)當(dāng)請(qǐng)求 list.view 時(shí),過(guò)濾器的執(zhí)行順序?yàn)镾ecurityFilter CharacterFilter (D)當(dāng)請(qǐng)求 list.view 時(shí),只會(huì)套用 SecurityFilter 答案:B、D 4. 關(guān)于 FilterChain 的描述,何者正確? (A)如果不呼叫 FilterChain 的 doFilter() 方法,則請(qǐng)求略過(guò)接 下來(lái)的過(guò)濾器而直接交給 Servlet (B)如果有下一個(gè)過(guò)濾器, 呼叫

40、FilterChain 的 doFilter() 方法, 會(huì)將請(qǐng)求交給下一個(gè)過(guò)濾器 (C)如果沒(méi)有下一個(gè)過(guò)濾器,呼叫FilterChain的 doFilter()方 法,會(huì)將請(qǐng)求交給 Servlet (D)如果沒(méi)有下一個(gè)過(guò)濾器,呼叫FilterChain的 doFilter()方 法沒(méi)有作用 答案: B、 C 5. 關(guān)于 FilterConfig 的描述,何者錯(cuò)誤? (A)會(huì)在 Filter 界面的 init() 方法呼叫時(shí)傳入 (B)為web.xml中vfilter設(shè)定的代表對(duì)象 ( C)可讀取 標(biāo)簽中 所設(shè)定的初始參數(shù) ( D)可使用 getInitParameter()方法讀取初始參數(shù)

41、答案: C 6. 以下的程序代碼將實(shí)作請(qǐng)求包裹器: public class MyRequestWrapper public MyRequstWrapper(HttpServletRequest request) super(requset); 請(qǐng)問(wèn)空白處應(yīng)該填上哪個(gè)程序代碼片段? (A) implements ServletRequest (B) extends ServletRequestWrapper (C) implements HttpServletRequest (D) extends HttpServletRequestWrapper 答案: D 提示:因?yàn)榻?gòu)式中直接使用傳入的

42、 HttpServletRequest 對(duì)象及 super() 來(lái)呼叫父類別建構(gòu)式,所以一定是繼承 HttpServletRequestWrapper。 7. 關(guān)于請(qǐng)求包裹器,以下描述何者正確? (A) 可以實(shí)作 ServletRequest界面 (B) 可以繼承 ServletRequestWrapper 類別 (C) 一定要繼承 ServletRequestWrapper 類別 (D) HttpServletRequestWrapper 是 ServletRequestWrapper的子類別 答案:A、B、D 提示:要自己實(shí)作 ServletRequest 接口來(lái)實(shí)作請(qǐng)求包裹器也是可以的,

43、 只是 所有的方法都要自行實(shí)作。 8. 關(guān)于HttpServletRequestWrapper與 HttpServletResponseWrapper的描述,何者有誤? (A)分 別 實(shí) 作 了 HttpServletRequest界 面 與 HttpServletResponse 界面 (B)分 別 繼 承 了 ServletRequestWrapper與 ServletResponseWrapper 類別 (C)實(shí)作時(shí),至少要重新定義一個(gè)父類別中的方法 (D)實(shí)作時(shí)必須在建構(gòu)式中呼叫父類別建構(gòu)式 答案: C 9. 在開(kāi)發(fā)過(guò)濾器時(shí),以下何者是正確的觀念? (A)必須考慮前后過(guò)濾器之間的關(guān)系

44、(B)掛上過(guò)濾器后不改變應(yīng)用程序原有的功能 (C)設(shè)計(jì) Servlet 時(shí)必須考慮到未來(lái)加裝過(guò)濾器的需求 (D)每個(gè)過(guò)濾器要設(shè)計(jì)為獨(dú)立互不影響的組件 答案: B、 D 10. 關(guān)于 Filter 界面上的 doFilter() 方法之說(shuō)明,何者有誤? (A) 會(huì) 傳 入 兩 個(gè)參數(shù) HttpServletRequest 、 HttpServletResponse (B) 會(huì) 傳 入 三 個(gè)參數(shù) HttpServletRequest 、 HttpServletResponse 、 FilterChain (C) 前一個(gè)過(guò)濾器呼叫 FilterChain 的 doFilter()后, 會(huì)執(zhí)行目 前

45、過(guò)濾器的 doFilter() 方法 (D) 前一個(gè)過(guò)濾器的 doFilter()執(zhí)行過(guò)后,會(huì)執(zhí)行目前過(guò)濾器的 doFilter()方法 答案:A、B、D 提 示 : Filter的 doFilter() 方法 上三 個(gè)參 數(shù)是 ServletRequest、 ServletResponse、 FilterChain。前一個(gè)過(guò)濾器的 doFilter() 執(zhí)行時(shí), 當(dāng)中必須呼叫 FilterChain 的 doFilter() 方法,才會(huì)執(zhí)行目前過(guò)濾器的 doFilter()方法。 實(shí)作題 1. 模仿本單元綜合練習(xí), 重構(gòu)第 4 章元課后練習(xí)中的留言版程序, 將從檔案讀 寫(xiě)留言版訊息的職責(zé)封裝

46、至一個(gè) MessageServlce 類別中。 2. 你的留言版程序不允許使用者輸入 HTML 標(biāo)簽,但可以允許使用者輸入一 些代碼作些簡(jiǎn)單的樣式。例如: b 粗體 /b i 斜體 /i big 放大字體 /big small 縮小字體 /small HTML 的過(guò)濾功能, 你可以直接使用本章所開(kāi)發(fā)的字符過(guò)濾器, 并且請(qǐng)另行 開(kāi)發(fā)一個(gè)過(guò)濾器來(lái)完成代碼替換的功能。 第 7 章課后練習(xí) 選擇題 1. 以下哪幾個(gè)傾聽(tīng)器,必須在 web.xml 中設(shè)定? (A) HttpSessionListener (B) RequestListener (C) ServletContextListener (D)

47、 ServletAttributeListener 答案: A、 C 提示:沒(méi)有 B、 D 這兩種傾聽(tīng)器。 2. 以下何者為傾聽(tīng)器的事件類型之一? (A) HttpSessionEvent (B) RequestAttributeEvent (C) ServletContextAttributeEvent (D) ServletContextEvent 答案: A、 C、 D 3. 以下傾聽(tīng)器中,不需要在 web.xml 中設(shè)定的是? (A) HttpSessionListener (B) HttpSessionBindingListener (C) ServletContextListene

48、r (D) ServletAttributeListener 答案: B 方法? 實(shí)作統(tǒng)計(jì)在線人數(shù)? 4. 以下哪幾個(gè)事件類型,擁有 getName() 與 getValue() (A)HttpSessionEvent (B)ServletRequestAttributeEvent (C)ServletContextAttributeEvent (D)HttpSessionBindingListener 答案:B、C、D。 5. 你有一段程序代碼片段: HttpSession session = request.getSession(); User user = new User(); ses

49、sion.setAttrubute(user, user); 以下何種作法, 可以讓你在不修改程序代碼的情況下, (A)實(shí)作HttpSessionBindingListener (B)實(shí)作HttpSessionListener (C)實(shí)作HttpSessionActivationListener (D)以上皆非 答案:B 提示:題目要求不修改原有的程序代碼,所以 B 是唯一的可能性。 6. 在 web. xml 中有以下的設(shè)定: Some 1 Other 1 AnOther 2 請(qǐng)問(wèn)以下描述何者正確? (A) 容器會(huì)產(chǎn)生兩個(gè) AnotherServlet 實(shí)例 (B) 容器會(huì)先初始化 Some

50、Servlet , 再初始化 OtherServlet (C) 容器會(huì)先初始化 AnOtherServlet ,然后才是其它 Servlet (D) 容器在請(qǐng)求來(lái)到時(shí),才會(huì)初始化對(duì)應(yīng)的 Servlet 答案: B 7. 哪個(gè) URL 模式設(shè)定方式,可以符合 /guest/list.view 的請(qǐng)求? (A) *.view (B) /guest/*.view (C) /guest/* (D) /guest/list.view 答案: A、 C、D 8. 如果想要請(qǐng)求 guest 目錄時(shí),自動(dòng)顯示歡迎檔案,則以下空格可以填上什 么? vweb- app (A) /guest/index.html

51、(B) /index.html (C) default.jsp (D) default.* 答案: C 9. 關(guān)于以下 web.xml 中的設(shè)定,何者描述正確? vweb- app NullPointerException report.view (A)發(fā)生 NullPointerException 時(shí)會(huì)轉(zhuǎn)發(fā) report.view 處理 (B)例外型態(tài)必須指定完全符合名稱( Full Qualified Name ) (C)report.view 必須改為 /report.view (D)例外類型不可以指定特定的例外類別名稱 答案:B、C 10. 在過(guò)濾器設(shè)定中,哪個(gè) URL 模式設(shè)定方式,

52、在 /guest/list.view 的請(qǐng)求時(shí)會(huì) 觸發(fā)過(guò)濾器? (A) *.view (B) /guest/*.view (C) /guest/* (D) /guest/list.view 答案: A、 C、 D 提示:過(guò)濾器的 設(shè)定原則與 Servlet 相同。 實(shí)作題 1. 請(qǐng)擴(kuò)充,不僅統(tǒng)計(jì)在線人數(shù),還可以在頁(yè)面上顯示目前登入使用者的名稱、 瀏覽器信息、最后活動(dòng)時(shí)間。 圖 7.14 在線使用者信息 2. 在,使用 HttpSessionBindingListener 來(lái)實(shí)作使用者登入、 注銷(xiāo)的日 志記錄功能,請(qǐng)改用 HttpSessionAttributeListener來(lái)實(shí)作這個(gè)功 章課

53、后練習(xí) 選擇題 1. 關(guān)于 JSP 的描述,哪個(gè)正確? (A) JSP 是直譯式的網(wǎng)頁(yè),與 Servlet 無(wú)關(guān) (B) JSP會(huì)先轉(zhuǎn)譯為.java,然后編譯為.class載入谷器 (C) JSP 會(huì)直接由容器動(dòng)態(tài)生成 Servlet 實(shí)例,無(wú)需轉(zhuǎn)譯 (D) JSP 是丟到瀏覽器端,由瀏覽器進(jìn)行直譯 答案 :B 2. 關(guān)于 JSP 的描述,哪個(gè)正確? (A) 要在 JSP 中撰寫(xiě) Java 程序代碼, 必須重新定義 _jspService() (B) 重新定義 jspInit()來(lái)作 JSP 初次載入谷器的初始化動(dòng)作 (C) 重新定義 jspDestroy()來(lái)作 JSP 從谷器銷(xiāo)毀時(shí)的結(jié)尾動(dòng)

54、作 (D) 要在 JSP 中撰寫(xiě) Java 程序代碼,必須重新定義 service() 答案 :B、C 3. 如果想要在 JSP 中定義方法,應(yīng)該使用哪個(gè) JSP 元素? (A) (B) (C) (D) 答案 :C 4. 當(dāng) JSP 中有撰寫(xiě)中文時(shí),而執(zhí)行結(jié)果出現(xiàn)亂碼,必須檢查 page 指示元素 的哪些屬性設(shè)定是否正確? (A) contentType (B) language (C) extends (D) pageEncoding 答案:A 提示:基本上還得檢查一下編輯器的預(yù)設(shè)編碼與 pageEncoding 是否一致 5. 哪個(gè) JSP 隱含對(duì)象,轉(zhuǎn)譯后對(duì)應(yīng) ServletContex

55、t 物件? (A) pageContext (B) config (C) page (D) application 答案: D 6. 在 Session 范圍中以名稱 bean 放置了一個(gè) JavaBean 屬性, JavaBean 上 有個(gè) getMessage() 方法,請(qǐng)問(wèn)以下哪個(gè)方式呼叫 getMessage() 以取得 訊息并顯示出來(lái)? (A) (B) $ (C) (D) $bean.message 答案:B、D 提示: 前必須先使用 并指定 scope 為 request ,否則 只會(huì)在 page 范圍中尋找屬性。 7. 在 Web 應(yīng)用程序中有以下的程序代碼,執(zhí)行后轉(zhuǎn)發(fā)至某個(gè) J

56、SP 網(wǎng)頁(yè): Map map = new HashMap(); map.put(user, caterpillar); map.put(role, admin); request.setAttribute(login, map); 以下哪個(gè)選項(xiàng)可以正確地使用 EL 取得 map 中的值? (A) $map.user (B) $maprole (C) $login.user (D) $loginrole 答案: C 提示:選項(xiàng) D 必須改為 $loginrole才是正確。 8. 在 Web 應(yīng)用程序中有以下的程序代碼,執(zhí)行后轉(zhuǎn)發(fā)至某個(gè) JSP 網(wǎng)頁(yè): Map map = new HashMap(

57、); map.put(local.role, admin); request.setAttribute(login, map); 以下哪個(gè)選項(xiàng)可以正確地使用 EL 取得 map 中的值? (A)$ (B)$ (C)$maplocal.role (D)$loginlocal.role 答案: D 9. 在 Web 應(yīng)用程序中有以下的程序代碼,執(zhí)行后轉(zhuǎn)發(fā)至某個(gè) JSP 網(wǎng)頁(yè): List names = new ArrayList(); names.add(caterpillar); request.setAttribute(names, names); 以下哪個(gè)選項(xiàng)可以正確地使用 EL 取得 Li

58、st 中的值? (A)$names.0 (B)$names0 (C) $names.0 (D) $names0 答案:B、D 提示:在 指定索引值時(shí)可以用雙引號(hào),所以 D 也是正確的。 10. 以下何者不是 EL 隱含物件? A) param B) request C) pageContext D) cookie 答案: B 實(shí)作題 1. 先前章節(jié)實(shí)作在線留言版時(shí),使用 Servlet 來(lái)實(shí)現(xiàn)畫(huà)面的輸出,請(qǐng)將之改為 JSP ,并盡量使用本章所學(xué)得的 JSP 元素,減少 Scriptlet 的使用。 第 9 章課后練習(xí) 選擇題 1. 哪些 JSTL 標(biāo)簽可用來(lái)進(jìn)行 Java 程序中 if 、if

59、.else的功能? (A) (B) (C) (D) 答案 : A 、 C 、 D 2. 如果打算使用 request 對(duì)象的 setCharacterEncoding() 方法設(shè)定字 符編碼處理方式,則以下哪個(gè) JSTL 標(biāo)簽可以讓你不用使用 Scriptlet ? (A) (B) (C) (D) 答案 :B 3. 如果 taglib 設(shè)定如下: 則以下何者會(huì)是使用自訂標(biāo)簽的正確方式? (A) (B) (C) (D) 答案 :D 4. 在使用Tag File自訂標(biāo)簽時(shí),若JSP中有以下的內(nèi)容: 以下何者描述正確? (A) 可以 的方式使用自訂標(biāo)簽 (B) 可以 的方式使用自訂標(biāo)簽 (C) 可以

60、 的方式使用自訂標(biāo)簽 (D) taglib 的定義有誤,無(wú)法使用自訂標(biāo)簽 答案 :D 提示 :如果是 Tag File,則 tagdir 只有可能是 /WEB-INF/tags 或其子資料夾。 5. 關(guān)于 tag 指示元素的 body-content屬性,以下說(shuō)明何者正確? A) 可設(shè)定的值有 JSP 、scriptless、empty 與 tagdependent B) 默認(rèn)值是 scriptless (C) 設(shè)定為tagdependent時(shí),本體內(nèi)容將不作任何處理直接傳入 Tag File 中 (D) 如果本體中要執(zhí)行Scriptlet,則要設(shè)定為JSP 答案:B、C 提示:可設(shè)定的值只有

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論