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

下載本文檔

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

文檔簡介

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

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

3、? (A) JSP (B) JavaScript (C) Servlet (D) Applet 答案 :B、D 7. Servlet JSP 主要是屬于哪個 Java 平臺的規(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 容器在收到瀏覽器請求時,會如何處理請求? (A) 使用單一執(zhí)行緒處理所有請求 (B) 一個請求就建立一個執(zhí)行緒來處理請求 (C) 一個請求就建

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

5、的 GET 請求進行處理與響應(yīng)? (A) 重新定義 service()方法 (B) 重新定義 doGet() 方法 (C) 定義一個方法名稱為 doService() (D) 定義一個方法名稱為 get() 答案: B 提示:不建議也不應(yīng)重新定義 HttpServlet 所繼承下來的 service() 方法。 3. HttpServlet 是定義在哪個套件之中? (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 哪個 URL 可以正確的要求 Servlet 進行請求處理? (A)/GoodBye B) C) D) /goodbye.do /LoguotServlet /goodbye 答案:D 5. 在 Web 容器中,以下哪兩

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

8、D) classes 目錄 答案: A 8. 你在 web.xml 中定義了以下的內(nèi)容: HelloServlet HelloServlet /hello 這個 web.xml 中的定義有哪些錯誤? (A) 標簽中的設(shè)定一定要用 .do 作結(jié)尾 (B) 標簽應(yīng)改為 ,結(jié)尾標簽名稱 也要修改 (C) 標簽應(yīng)改為 ,結(jié)尾標簽名稱也 要修改 (D) 標簽應(yīng)改為 ,結(jié)尾標簽名 稱也要修改 答案:B、C 提示: 可以無需 .do 結(jié)尾,也可以用萬用字符( wildcard ),例 如*.do將會讓所有以.do結(jié)尾的請求由該Servlet進行處理。 9. 在 MVC 架構(gòu)中,誰負責通知應(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)中的模型無法通知視圖狀態(tài)已更新 (C) MVC 架構(gòu)是基于請求響應(yīng)模型 (D) MVC 架構(gòu)只能用于單機應(yīng)用程序 答案: B 提示: Model 2 架構(gòu)中呈現(xiàn)視圖的技術(shù)并沒有限制。 MVC 架構(gòu)也可以應(yīng)用于 3-tier 的網(wǎng)絡(luò)架構(gòu)中,其中模型通知視圖時,可以透過 Socket 聯(lián)機來進行。 實作題 1. 講師提示:這個

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

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

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

13、t.jsp ( B)request.getRequestDispatcher(/WEB-INF/secret.j sp) 并進行 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. 如果想取得輸出串流對象對瀏覽器輸出位數(shù)據(jù), 應(yīng)該撰寫哪一段程序代碼? ( A)ResponseStream out = response.getResponseStream(); (B)ResponseStream out = response.getStream(); ( C)ResponseStream out = response.getOutputStream(); ( D)ServletOutputStream out =

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

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

17、正確地設(shè)定內(nèi)容類型( content-type ),瀏覽器會提示 另存新檔 答案: C 提示:同一個請求周期中, HttpServletResponse 的 getWriter() 與 getOutputStream()只 能 擇 一 使 用 , 否 則 會 丟 出 IllegalStateException。 8. 如果要設(shè)置響應(yīng)的內(nèi)容類型標頭,哪幾個選項是正確的作法? (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. 下面哪個選項,可以正確地追加自訂標頭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. 哪幾個方法是定義在 HttpServletRequest 中,而非由ServletRequet 中繼承而來? (A) getMethod() (B) getHeader() (C) getParameter() (D) getCookies() 答案:A、 B、C 提示:與HTTP請求有關(guān)的方法,是定義在 HttpServletRequest 中,與通 用請求有關(guān)的,是定義在 ServletRequest 中,例如getParameter() 。 實作題: 1. 請實作一個Web應(yīng)用程序,可以將使用者所發(fā)送的name請求參數(shù)值畫在 一張圖片上(參考下圖,底圖可任選)。 提示

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

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

23、ointerException 答案: D 提示:get In itParameter()也是透過ServletCo nfig來取得初始參數(shù),在 建構(gòu)式執(zhí)行時,由于尚未進行 Servlet 初始化, ServletConfig 尚未經(jīng)由 init() 方法傳入 Servlet 之中, 所以建構(gòu)式中嘗試取得初始參數(shù)時就會發(fā)生 NullPointerException。 9文檔收集于互聯(lián)網(wǎng),如有不妥請聯(lián)系刪除 文檔來源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持. 4. 繼承 HttpServlet 之后,若要進行 Servlet 初始化,重新定義哪個方法才是正 確的作法? (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ù),以下哪兩項是 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ù),以下哪個是正確的作法? (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)的方法是哪三個? (A) getAttribute(); (B) setAttribute(); (C) deleteAttribute() (D) removeAttribute(); 答案: A、 B、D 8. 若 web.xml 中有以下的設(shè)定: Some param1 1 param2 2 而某個 Servlet 撰寫了以下的程序代碼: public void init() thr

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

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

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

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

31、tConfig 讀取 Servlet 初始參數(shù),利用 ServletContext 讀取應(yīng)用程序初始參數(shù)等。 36文檔收集于互聯(lián)網(wǎng),如有不妥請聯(lián)系刪除 第 5 章課后練習 選擇題 1. 在瀏覽器禁用 Cookie 的情況下,哪些機制仍可以用于會話管理? (A) HttpSession (B) URL 重寫 (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) 時 (B) 分 (C) 秒 (D) 毫秒 答案: B 4. 何者可以實作使用者的自動登入機制? (A) HttpSession (B) Cookie (C) HttpServletRequest (D) URL 重寫 答案: B 5. 關(guān)于 HttpSession 的 setMaxInactiveInterval()方法,以下描述何 者錯誤? (A) 設(shè)定的單位是分 (B) 用來設(shè)定 HttpSession在瀏覽器多久沒活動后失效 (C) 用來設(shè)定 Cookie 的失效時間 (D) 會覆蓋 web.x

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

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

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

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

37、用的值。 圖 5.11 記住名稱、密碼 第 6 章課后練習 選擇題 1. 關(guān)于過濾器的描述,以下何者正確? (A)Filter 接口定義了 init()、service()與 destroy() 方法 (B)會傳入 ServletRequest 與 ServletResponse 至 Filter (C)要執(zhí)行下一個過濾器,必須執(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ù) ,過濾器會套用在所有以 .do 結(jié)尾的 URL請求 (B)可以透過FilterConfig來讀取USER與PASSWORD始參數(shù) ( C)初始參數(shù)設(shè)定位置錯誤, 等標簽應(yīng)放在 標簽之中 ( D) 應(yīng)改為 才是正確設(shè)定 答案: A、 C 提示:由于初始參數(shù)的設(shè)定錯誤,無法透過 FilterConfig 取得初始參數(shù)。 3. 關(guān)于以下的 web.xml 設(shè)定: SecurityFilter /add.do SecurityFilter *.view CharacterFilter /add.do 以下描述何者正確? A)當

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

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

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

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

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

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

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

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

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

48、r (D) ServletAttributeListener 答案: B 方法? 實作統(tǒng)計在線人數(shù)? 4. 以下哪幾個事件類型,擁有 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)實作HttpSessionBindingListener (B)實作HttpSessionListener (C)實作HttpSessionActivationListener (D)以上皆非 答案:B 提示:題目要求不修改原有的程序代碼,所以 B 是唯一的可能性。 6. 在 web. xml 中有以下的設(shè)定: Some 1 Other 1 AnOther 2 請問以下描述何者正確? (A) 容器會產(chǎn)生兩個 AnotherServlet 實例 (B) 容器會先初始化 Some

50、Servlet , 再初始化 OtherServlet (C) 容器會先初始化 AnOtherServlet ,然后才是其它 Servlet (D) 容器在請求來到時,才會初始化對應(yīng)的 Servlet 答案: B 7. 哪個 URL 模式設(shè)定方式,可以符合 /guest/list.view 的請求? (A) *.view (B) /guest/*.view (C) /guest/* (D) /guest/list.view 答案: A、 C、D 8. 如果想要請求 guest 目錄時,自動顯示歡迎檔案,則以下空格可以填上什 么? 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 時會轉(zhuǎn)發(fā) report.view 處理 (B)例外型態(tài)必須指定完全符合名稱( Full Qualified Name ) (C)report.view 必須改為 /report.view (D)例外類型不可以指定特定的例外類別名稱 答案:B、C 10. 在過濾器設(shè)定中,哪個 URL 模式設(shè)定方式,

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論