JSP第二版課後習題答案初步不含顏色,冗雜【侵權聯繫我刪除】

JSP第二版課後習題下載:

JSP第二版課後習題答案下載:https://download.csdn.net/download/weixin_42859280/11265728

習題一

一、選擇題

1、JSP文件在第一次運行的時候被JSP引擎編譯爲( )文件。A

A.Servlet                       B.Class 

C.HTML                       D.XML

2、MVC設計模式將應用程序分爲( )部分。B

A.2                            B.3       

C.4                            D.5

MVC 模式將應用分爲模型、視圖和控制器三個部分

3、與JSP同類型的技術有( )。C

A.JavaScript                     B.Java    

C.ASP.NET                     D.C#

4、以下文件名後綴中,只有(  )不是動態網頁的後綴。B

A..jsp                                  B..html                   

C..aspx                                D..PHP

5、以下關於Servlet 和JSP的敘述中,正確的是( )C

A.JSP和Servlet都是Java 。 

B.Servlet 是JAVA平臺下實現的基本技術。

C.在Servlet中,需要用Java代碼向客戶端輸出返回信息。

D.以上都不對。

6、JSP頁面經過轉譯之後,將創建一個(  )文件。B

A. applet                              B.servlet        

C. application                          D.server

7、下面關於JSP的說法是不正確的(  )C

A.將內容的生成和顯示進行分離  

B. 能夠跨平臺

C.可以直接在瀏覽器端解釋執行   

D. 採用標籤簡化頁面開發

8、Jsp在轉譯階段生成文件的擴展名是( )   B

A. class                           B. java     

C. exe                      D. bin

9、http協議默認使用( ) 選一項   A

A.8080 端口                       B.7001 端口        

C.80 端口                      D.25端口

10、在JDK 的工具包中用來編譯Java 源文件的工具是(  )    A

A.Javac                           B.Javap     

C.Java                          D.Javah

二、判斷[1:表示對;0:表示錯;]

1、靜態網頁*.htm中可以嵌入腳本代碼,如JavaScript、VBScript程序段等,但這些程序段不可能在服務器端運行,只能在客戶端運行。( )1

2、動態網頁是在服務器端被執行,其中嵌入的代碼只能在服務器端運行,不能在客戶端瀏覽器中運行。( )1

3、JSP文件可以單獨運行。( )0

4、JSP是解釋性語言。( )0【因爲需要在服務器上編譯】

5、JSP是以Servlet程序方式運行的,而ASP是由ASP引擎解釋執行的。( )1

三、填空

1、JSP的英文全稱是        Java Server Pages                 ,中文全稱是        Java服務器端語言             

2、JSP頁面由                       和嵌入其中的                        所組成。

HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標記(Tag)

3、Tomcat是JSP運行的            Web 應用服務器                  

4、MVC設計模式將應用程序分爲模型、   視圖            控制器    

5、JSP的實質就是              Servlet                      

四、問答題

1. 什麼是靜態網頁?什麼是動態網頁?兩者的區別是什麼?試舉例說明。

答:在網站設計中,純粹HTML格式的網頁通常被稱爲“靜態網頁”,早期的網站一般都是由靜態網頁製作的。靜態網頁是相對於動態網頁而言,是指沒有後臺數據庫、不含程序和不可交互的網頁。你編的是什麼它顯示的就是什麼、不會有任何改變。靜態網頁相對更新起來比較麻煩,適用於一般更新較少的展示型網站。靜態網頁的網址形式通常爲:www.example.com/eg/eg.htm,也就是以.htm、.html、.shtml、.xml等爲後後綴的。在HTML格式的網頁上,也可以出現各種動態的效果,如.GIF格式的動畫、FLASH、滾動字母等,這些“動態效果”只是視覺上的,與下面將要介紹的動態網頁是不同的概念。 
我們將靜態網頁的特點簡要歸納如下:
(1)靜態網頁每個網頁都有一個固定的URL,且網頁URL以.htm、.html、.shtml等常見形式爲後綴,而不含有“?”; 
(2)網頁內容一經發布到網站服務器上,無論是否有用戶訪問,每個靜態網頁的內容都是保存在網站服務器上的,也就是說,靜態網頁是實實在在保存在服務器上的文件,每個網頁都是一個獨立的文件;
(3)靜態網頁的內容相對穩定,因此容易被搜索引擎檢索;
(4)靜態網頁沒有數據庫的支持,在網站製作和維護方面工作量較大,因此當網站信息量很大時完全依靠靜態網頁製作方式比較困難;
(5)靜態網頁的交互性交叉,在功能方面有較大的限制 
動態網頁是與靜態網頁相對應的,也就是說,網頁 URL的後綴不是.htm、.html、.shtml、.xml等靜態網頁的常見形式,而是以.asp、.jsp、.php、.perl、.cgi等形式爲後綴,並且在動態網頁網址中有一個標誌性的符號——“?”,如有這樣一個動態網頁的地址爲:http://www.pagehome.cn/ip/index.asp?id=1這就是一個典型的動態網頁URL形式。這裏說的動態網頁,與網頁上的各種動畫、滾動字幕等視覺上的“動態效果”沒有直接關係,動態網頁也可以是純文字內容的,也可以是包含各種動畫的內容,這些只是網頁具體內容的表現形式,無論網頁是否具有動態效果,採用動態網站技術生成的網頁都稱爲動態網頁。
我們將動態網頁的一般特點簡要歸納如下:
(1)動態網頁以數據庫技術爲基礎,可以大大降低網站維護的工作量;
(2)採用動態網頁技術的網站可以實現更多的功能,如用戶註冊、用戶登錄、在線調查、用戶管理、訂單管理等等;
(3)動態網頁實際上並不是獨立存在於服務器上的網頁文件,只有當用戶請求時服務器才返回一個完整的網頁;
(4)動態網頁中的“?”對搜索引擎檢索存在一定的問題,搜索引擎一般不可能從一個網站的數據庫中訪問全部網頁,或者出於技術方面的考慮,搜索蜘蛛不去抓取網址中“?”後面的內容,因此採用動態網頁的網站在進行搜索引擎推廣時需要做一定的技術處理才能適應搜索引擎的要求
靜態網頁與動態的區別 
程序是否在服務器端運行,是重要標誌。在服務器端運行的程序、網頁、組件,屬於動態網頁,它們會隨不同客戶、不同時間,返回不同的網頁,例如ASP、PHP、JSP、ASP.net、CGI等。運行於客戶端的程序、網頁、插件、組件,屬於靜態網頁,例如html頁、Flash、JavaScript、VBScript等等,它們是永遠不變的。 

2. 什麼是B/S模式?什麼是C/S模式?試舉例說明。

答:即瀏覽器服務器結構。它是隨着Internet技術的興起,對C/S結構的一種變化或者改進的結構。在這種結構下,用戶工作界面通過瀏覽器來實現,極少部分事務邏輯在前端(Browser)實現,主要事務邏輯在服務器端(Server)實現,形成所謂三層結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統維護與升級的成本和工作量,降低了用戶的總體成本。
客戶機上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務器安裝Oracle、Sybase、Informix或 SQL Server等數據庫。瀏覽器通過Web Server 同數據庫進行數據交互。
這種模式,我們通常將其成爲瘦客戶端模式。
典型的系統:網上銀行、網上書店、Blog等等
客戶機/服務器(Client/Server,C/S)模式
即客戶機和服務器結構。這種體系結構模式是以數據庫服務器爲中心、以客戶機爲網絡基礎、在信息系統軟件支持下的兩層結構模型。這種體系結構中,用戶操作模塊佈置在客戶機上,數據存儲在服務器上的數據庫中。客戶機依靠服務器獲得所需要的網絡資源,而服務器爲客戶機提供網絡必須的資源。目前大多數信息系統是採用Client/Server結構。
服務器通常採用高性能的PC、工作站或小型機,並採用大型數據庫系統,如Oracle、Sybase、Informix或 SQL Server。客戶端需要安裝專用的客戶端軟件。 
這種模式我們也通常成爲胖客戶端模式。
典型的系統:QQ、MSN

3. 什麼是JSP?與ASP、PHP、ASP.NET相比,JSP有哪些優點?

答:JSP(Java Server Pages)是由Sun Microsystems公司倡導的、許多公司參與一起建立的一種動態網頁技術標準。JSP技術是用Java語言作爲腳本語言的,JSP網頁爲整個服務器端的JAVA庫單元提供了一個接口來服務於HTTP的應用程序。
JSP不像CGI,ISAPI和NSAPI那樣難於編寫和維護,不像PHP那樣只能適應中小流量的網站,也不像ASP那樣受到跨平臺的限制(只能運行於Microsoft公司開發的IIS和PWS上)。JSP體現了當今最先進的網站開發思想,和其他Web開發工具相比,JSP有着它自己強大的優勢。
程序可以跨臺平執行。JSP可以讓開發人員在任意環境中進行開發,在任意環境中進行系統部署,在任意環境中擴展應用程序。
多樣化和功能強大的開發工具支持。Java有許多非常優秀的開發工具,而且有許多可以免費得到,並且其中的許多已經可以順利地運行於多種平臺之下。
強大的可伸縮性。從只有一個小的jar文件就可以運行servlet/jsp到由多臺服務器進行集羣和負載均衡,到多臺Application進行事務處理,一臺服務器到無數臺服務器,Java顯示了巨大的生命力。。

4. JSP、Java和JavaScript有什麼區別與聯繫?

答:JAVASCRIPT從其名稱含義是JAVA腳本,是在瀏覽器中運行的腳本語言,由於其大部分語法規範取自於JAVA語法規範,所以取名爲JAVASCRIPT。JAVASCRIPT是一門基於對象的弱類型腳本編程語言,主要用來製作網頁前臺的技術。並且是現在比較熱門的AJAX技術的核心。
JSP是JAVA SERVER PAGE的首字母縮寫,顧名思義,是JAVA的服務端頁面,其動態語法部分完全是JAVA規範。JSP是基於Java的技術,用於創建可支持跨平臺及Web服務器的動態網頁。從構成情況上來看,JSP頁面代碼一般由普通的HTML語句和特殊的基於Java語言的嵌入標記組成,所以它具有了Web和Java功能的雙重特性。JSP是和ASP,PHP一樣的服務器端語言,主要用來製作網站後臺的技術。
JAVA是和C/C++一個等級的強類型編程語言,是純面向對象的.比起JSP和JAVASCRIPT要複雜的多。一般學好JAVA就能很容易轉向其他兩門語言。
總結:JSP是JAVA技術的其中之一,所以學好了JAVA過渡到JSP從編程角度來講比較容易,學好JSP以後要想學好JAVA,就還要學習更多的JAVA方面的東西,比如JAVABEAN,企業級應用等等。
JAVASCRIPT嚴格來講,除了語法參照了JAVA語法規範外,和JAVA毫無關係,所以兩者之間只是語法規範類似,相互之間的過渡就只有語法能夠參照,其他的都得分別去了解,JAVASCRIPT是過程式語言,JAVA則是面向對象的。

五. 拓展實踐題

(1) 體驗靜態網頁和動態網頁的特點。

在客戶端瀏覽器地址欄中輸入http://www.sina.com/進入新浪網主頁,查看新聞內容,體驗靜態網頁的特點。在客戶端瀏覽器地址欄中輸入http://www.csdn.net/index.htm,進入中國程序員網,註冊會員,體會動態網頁特點。在“程序員網”註冊成功後,使用用戶名登錄程序員網,查詢相關JSP的學習資料。

(2) 通過網上書店購書,體驗Web應用程序特點。

習題

一、選擇題

1、在網頁中插入圖像使用標籤( )。A

A.<img>                          B.<image> 

C.<pic>                          D.<picture>

2、表格標籤是( )。A

A.<table>                       B.<td>       

C.<tr>                          D.<th>

3、表單項<input>標籤中表示插入提交按鈕時,type的屬性值需設爲(   )。B

A.button                          B.submit    

C.reset                     D.btn

4、HTML5中,<input>標籤的屬性type爲(  )時用戶可以通過鼠標在調色板上自由的選擇某種顏色。A

A.color                                B.check                  

C.select                               D.look

5、關於CSS,以下敘述錯誤的是( )。C

A. CSS的中文意思是層疊樣式表,簡稱樣式表。             

B. CSS可以精確地控制網頁中元素的樣式。                 

C. 一個HTML網頁文件只能應用一個CSS文件。                     

D. CSS文件可以單獨保存而不必和HTML文件合併在一起。

6、下列選項中,應用了行內樣式的是( )。 C

A. <p class="s1">                 B. <p id="s1">

C. <p style="color:green;">       D. <p class="color:green;">

二、判斷[1:表示對;0:表示錯;]

1、HTML的中文含義是超文本標記語言。( )1

2、colspan是<td>標籤的屬性,表示跨越的列數,例如“colspan=4”表示這一格的寬度爲4個列的寬度。( )1

3、表單在網頁中用來給訪問者填寫信息,從而能採集客戶端信息,使頁面具有交互信息的功能。( )1

4、超鏈接只能在不同的網頁之間進行跳轉。( )0

5、文本鏈接使用屬性a{text-decoration:none;}可以設置鏈接加上下劃線。( )0

三、填空

1、表格由3個基本組成部分,分別爲行、列和      單元格         

2、CSS中ID選擇器在定義的前面要有指示符       #            

3、段落標籤是              <p>...</p>                

4、當<input>標籤的type屬性值爲   date       時,代表在網頁中加入一個日期表單項。

四、解答題

1. HTML文檔的基本結構是什麼?

答:
	<!DOCTYPE html>
	<html>
	<head>
	...
	</head>
	<body>
	... 
	</body>
	</html>

2. 完成如圖2-25所示網頁,使用表格佈局,使用CSS控制樣式,表格第一行的日期是使用JavaScript顯示的系統當前日期,當點擊“查看謎底”時彈出謎底。

 

圖2-25綜合練習

習題三【對應2章,2019.6.30不用看】不用看不用看

一、選擇題

1、WebContent文件夾用來保存的文件是( )。A

A. JSP文件和HTML文件

B.CLASS文件和JAR文件

C.WEB文件和JAVA文件

D.以上都不對

2、在WEB應用程序的目錄結構中,在WEB-INF文件夾外的文件爲( )。A

A..jsp文件

B..class文件

C..jar文件

D.web.xml文件

3、Tomcat服務默認使用的端口號,可以在( )文件中修改。A

A. server.xml

B.web.xml

C. context.xml

D. admin.xml

4、當多個用戶請求同一個JSP頁面時,Tomcat服務器爲每個客戶啓動一個( )B

A.進程

B.線程

C.程序

D.服務

5、在本機上安裝了Tomcat服務器,使用的均爲默認安裝選項,將自己編寫的test.jsp文件放在Tomcat安裝目錄\webapps\examples目錄裏,那麼在本機的瀏覽器中要訪問test.jsp文件,應使用的url地址爲( )A

A.http://localhost:8080/examples/test.jsp

B.Http://localhost:8080/ webapps /examples/test.jsp

C.HTTP://localhost:8080 /test.jsp

D. http://localhost /examples/test.jsp

二、判斷[1:表示對;0:表示錯;]

1、Lomboz是一個Eclipse插件。一定要針對Eclipse版本來選擇相應版本的Lomboz,否則可能導致Lomboz無法正常使用。1

2、Tomcat是一個JSP/Servlet容器。( )1

3、在Eclipse開發環境中Java文件代碼的編譯輸出目錄爲WEB-INF。( )0

4、如果要在瀏覽器中運行JSP頁面,Tomcat必須處於啓動狀態。( )1

5、安裝MyEclipse以前 需先安裝Eclipse。( )0

三、填空

1、除了開發工具之外,還要安裝一個支持Java Servlet的  Web服務器  ,或者在現有的Web服務器上安裝  Servlet  軟件包。

2、Tomcat的全局配置文件是       server.xml              

3、  Myeclipse 是Eclipse的插件,也是一款功能強大的JavaEE集成開發環境,支持代碼編寫、配置、測試以及除錯。

4、在Eclipse的開發項目中src目錄用來存放     java源文件  

5、MyEclipse       MyEclipse6.0            以後版本安裝時不需安裝Eclipse。

四、問答題

1. 爲什麼在客戶端雙擊.jsp文件不能運行JSP?

答:JSP是服務器端程序,它的運行需要服務器支持。

2. JSP是否支持JavaScript語言?

答:JSP的標準支持語言是JAVA,JavaScript的客戶端支持普遍,JSP程序中可以嵌入JavaScript

3、安裝JDK有什麼用,是否需要掌握JDK的命令使用?

答:JDK是JAVA開發工具包,它提供JSP程序運行的類包,JSP服務器會自動用用JDK編譯和運行JSP。

4、Tomcat服務器有什麼優點?

答:免費、開源、支持最新標準、更新快、跨平臺

習題四【第三版3章】

一、選擇題

1、在JSP中,要定義一個方法,需要用到以下(   )元素。D

A.<%=  %>                            B.<%   %>

C.<%@  %>                           D.<%!  %>

2、在J2EE中,在一個JSP文件中,有表達式<%=2+3 %>,它將輸出( )。 B

A.2+3                                   B.5                 

C.2                                 D.不會輸出,因爲表達式是錯誤的

3、在JSP中,(    )動作用於將請求轉發給其他JSP頁面。  A

A.forward                           B.include

C.useBean                           D.setProperty

4、要設置某個JSP頁面爲錯誤處理頁面,以下page指令正確的是(  )。  B

A.<%@ page errorPage="true"%>                     

B.<%@ page isErrorPage="true"%>

C.<%@ page extends="javax.servlet.jsp.JspErrorPage"%>

D.<%@ page info="error"%>

5、當瀏覽器第二次訪問以下JSP網頁時的輸出結果是什麼?( )C

<%! int a=0;     %>

<%

     int b=0;

     a++;

     b++;

%>

a:<%= a %> <br>

b:<%= b %>

選項:

A.a=0  b=0                         B. a=1  b=1

C. a=2  b=1                         D. a=2  b=2

6、關於<jsp:include>, 下列說法不正確的是(  )。D

A. 它可以包含靜態文件。

B. 它可以包含動態文件。

C. 當它的flush屬性爲true時,表示緩衝區滿時,將會被清空。

D. 它的flush屬性的默認值爲true。

7、在JSP中,對<jsp:setProperty>標記描述正確的是(  )。C

A. <jsp:setProperty>和<jsp:getProPerty>必須在一個JSP文件中搭配出現。

B. 就如同session.setAttribute()一樣,來設計屬性/值。

C. 和<jsp:useBean>動作一起便用,來設置bean的屬性值。

D. 就如同request.setAttribute()一樣,來設置屬性/值。

8、在 myjsp.jsp 中,關於下面的代碼說法錯誤的是( )。A

<%@ page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %>     

A.該頁面可以使用 exception 對象  。

B.該頁面發生異常會轉向 error.jsp  。

C. 存在 errorPage 屬性時,isErrorPage 是必須的屬性值且一定爲 false 。

D.error.jsp 頁面一定要有isErrorPage 屬性且值爲 true。

9、下列哪一種不是JSP 中的註釋符( )。   A

A. <!--註釋內容-->                         B.  /*註釋內容*/     

C. //註釋內容                              D.   /**註釋內容**/

10、J2EE中在JSP中要使用user包中的User類,則以下寫法正確的是(   )。A

A. <jsp:useBean id="user"class="user.User"scope="page"/>

B. <jsp:useBean class="user.Use.class"/>

C. <jsp:useBean name="user"class="user.User"/>

D. <jsp:useBeam id="user"class="user"import="user.*"/>

二、判斷[1:表示對;0:表示錯;]

1、在page指令中,import參數允許重複使用多次。( )1

2、<!--  -->中可以使用<% %>動態輸出註釋內容,同時<%--  --%>中也可以使用<% %>,因爲預覽JSP頁面時沒有報錯。( )1

3、當page標識的isThreadSafe屬性設爲true時,JSP只可以接受一個用戶訪問。( )0

4、<jsp:include page="body.jsp?name=tom&password=123" />可用於在JSP頁面中包含body.jsp文件,並傳遞兩個參數name和password。( )0

5、<%@ include file=”URL” %>允許包含動態文件和靜態文件,但是這兩種包含文件的結果是不同的,如果文件僅僅是靜態文件,那麼這種包含僅僅是把包含文件的內容加到JSP文件中去,這個被包含的文件不會被JSP編譯執行。相反地,如果被包含文件是動態文件,那麼這個被包含文件會被JSP編譯器執行。( )0

三、填空

1、JSP有三個指令元素:

 <%@page%><%@include %><%@taglib %>

2、JSP的腳本元素包含以下4個部分:

隱藏註釋(Hidden Comment)、聲明(Declarations)、腳本段(ScriptLets)、表達式(Expression)

                  、                                                       

3、動作元素<jsp:setProperty>的作用爲           設置javabean對象的屬性值                   

4、<jsp:forward>的作用是    頁面跳轉     

5、在JSP頁面中可以聲明方法,但是僅在   當前頁面    內有效。

四、簡答

1. 如何在HTML網頁中嵌入JSP程序代碼?怎樣來定義JSP中的聲明區與程序區?

答:在JSP網頁中必須於<%與%>符號間嵌入程序代碼。
JSP聲明的語法格式爲:
<%! declaration; [ declaration; ] ... %> 或
<%! 聲明; [聲明; ] ... %>
腳本代碼的語法格式如下:
<% code fragment %> 或
<% 代碼 %>

2. 請說明JSP中有哪3個指令元素,以及這3個指令的主要用途。

答:page指令:可用來設置JSP網頁的特性,如編碼方式、引用類、緩衝區等。
include指令:可用來將HTML、文本文件或者JSP程序加載當前的JSP網頁。
taglib指令:可用來引用一個自定義的標籤庫。

3. JSP中include指令與include動作的區別是什麼?

答:include指令是指把其它頁面的Java代碼(源碼)加進來,跟本頁面的代碼合併在一起,相當於把源碼從那個頁面複製到本頁面中來,然後再編譯。並且由於本頁面編譯時已經包含了別的文件的源碼,所以以後其它頁面更改時,本頁面並不理會,因爲已經編譯過了。
<jsp:include>動作是指兩個頁面的代碼運行完以後,再把包含的那個頁面運行後的HTML結果頁面加到本頁面運行後的HTML結果頁面中來。所以是運行時包含,並且還可以傳遞參數給被包含的頁面。

4. JSP網頁可以使用的特殊操作元素有哪些?其中<jsp:forward>與<jsp:param>操作元素各有什麼功能?

答:可使用的操作元素有<jsp:param>、<jsp:include>、<jsp:forward>、<jsp:plugin>。
<jsp:forward>:可將當前瀏覽器顯示網頁的網址,重新導向新的網址。
<jsp:param>:主要用來傳遞參數給JSP程序,而由程序取得參數值。

五、編程

1. 編寫一個JSP程序,計算10!,並顯示出結果。要求先聲明計算階乘的方法,再調用該方法,最後在頁面上輸出結果。

(進階要求,通過表單提交一個正整數,然後計算它的階乘。)

2. 在JSP頁面中靜態包含文件。要求程序包含兩個文件,主文件靜態包含一個能夠計算數據的算數平方根的頁面。

3. 動態包含頁面並傳遞數據。要求程序包含兩個文件,主文件加載次文件,並將隨機產生的0~1之間的數據傳遞給它,並且在頁面上顯示出來。

(進階要求,把動態包含改爲動態重定向,比較兩者之間的區別。)

4. 計算三角形的面積。要求由用戶輸入三角形的三條邊,判斷這三條邊是否能構成一個三角形,若能構成三角形,則輸出三角形的面積。

 

習題五【對應第三版4章】

 

一、選擇題

1、在J2EE中,下列(  )語句可以獲取頁面請求中的一個單選框的選項值(單選框的名字爲name)。

A.  response.getParameter("name");      

B.  request.getAttribute("name");

C.  request.getParameter("name");         

D.  request.getParameters("name");

2、在J2EE中,request對象的(     )方法可以獲取頁面請求中一個表單控件對應多個值時的用戶的請求數據。

A.String getParameter(String name)

B.String[] getParameter(String name)

C.String getParameterValuses(String name)

D.String[] getParameterValues(String name)

3、以下對象中作用域最大的是(  )。

A.request                    B.session     

C.application                 D.page

4、在JSP頁面中,能夠完成輸出操作的內置對象是 (  )。

A.   out                       B.  response

C.   request                    D. config

5、要在session對象中保存屬性,可以使用以下哪個語句?(  )

A.   session.getAttribute("key","value");

B.    session.setAttribute("key","value");

C.   session.setAtrribute("key");

D.   session.getAttribute("key");

6、需要刪除session中的某個屬性key,可以調用下面的(   )方法。

A.   remove(“key”)

B.    removeAttribute("key")

C.   invalidate()

D.   logout()

7、在J2EE中,假如HttpSession的getLasAccessTime()方法返回值爲x,getCreationTime()方法返回值爲y,則爲x - y()。

A.兩個連續請求之間間隔的最長時間

B.最近的兩個連續請求之間的時間間隔

C.最後使用session發送請求的時間和session創建時間的間隔

D.最後使用session發送請求的時間

8、以下代碼能否編譯通過,假如能編譯通過,運行時得到什麼輸出結果( )。

<%

request.setAttribute("count",new Integer(0));

Integer count = request.getAttribute("count") ;

%>

<%=count %>

A.   編譯不通過

B.    可以編譯運行,輸出0

C.   編譯通過,但運行時拋出ClassCastException

D.   可以編譯通過,但運行無輸出

9、現在session中沒有任何屬性,閱讀下面2個JSP中的代碼,將分別輸出( )。

<%

          out.println(session.getAttribute("svse "));

%>

<%

          session.invalidate();

          out.println(session.getAttribute("svse "));

%>

A.   null, 異常信息

B.    null, null,

C.   異常信息,異常信息

D.   異常信息,null

10、Form表單提交的信息中含有“name= svse”,閱讀下面的JSP,a.jsp將輸出()。

       接受該請求的JSP:

<%

          response.sendRedirect(“a.jsp");  

%>

       a.jsp包含如下代碼

<%=request.getParameter(“name") %>

A.   null

B.    什麼都不輸出

C.   異常信息

D.   svse

二、判斷[1:表示對;0:表示錯;]

1、<jsp:forward ... >標記的page屬性值是相對的URL地址,只能靜態的URL。( )

2、利用response對象的sendRedirect方法只能實現本網站內的頁面跳轉,但不能傳遞參數。(  )

3、contentType屬性用來設置JSP頁面的MIME類型和字符編碼集,取值格式爲"MIME類型"或"MIME類型;charset=字符編碼集",response對象調用addHeader方法修改該屬性的值。(  )

4、在J2EE中,重定向到另一個頁面,可以用request.sendRedirect("http://www.jb-aptech.com.cn");(  )

5、應用application對象能在不同用戶之間共享數據(    )。

三、填空

1、當客戶端請求一個JSP頁面時,JSP容器會將請求信息包裝在             對象中。

2、已知文件look.jsp的路徑爲c:/myjsp/inc,文件login.jsp的路徑爲c:/myjsp。若使用response的重定向方法由look.jsp跳轉到login.jsp中,則正確的寫法爲________________ 。

3、當getParameter()方法的參數部分指定的輸入控件不存在時,該方法的返回值爲  ____________。

4、列表框的name屬性值爲“city”,並且允許多選,若要一次讀取所有的選中項並存放於數組str中,則對應的java語句爲____________________ 。

5、給定一個JSP程序源碼如下:

<jsp:include page = “test.jsp”flush = “true”>

<jsp:param name = “location”value = “beijing”/>

</jsp:include>

在test.jsp中加入____________________代碼片斷可以輸出參數location的值。

四、簡答

1. JSP中的內建對象包含哪些?試簡述這些對象在JSP中的主要功能。

2. response重定向方法sendRedirect()和動作元素<jsp:forward>的區別是什麼?

3. application與session對象存儲數據變量的方式有何區別?

4. 請說明session對象的生命週期在哪些狀況下會結束。

五、編程

1. 編寫一個簡單的網上測試系統。要求由兩個頁面組成,第一個頁面顯示試題,例如單選題,如圖5-37所示。第二個頁面獲取考生提交的選擇,統計考生得分並顯示。

2. 信息的保存和獲取。

例如簡單的網上購物,將購買者的姓名、商品名保存在session對象中,實現一個Web目錄下的頁面對session對象中信息的共享。要求創建3個頁面,第1個頁面輸入用戶的姓名,第2個頁面輸入購買商品名的名稱,第3個頁面實現結賬處理。

3. 簡單的用戶登錄。

用戶通過輸入用戶名和密碼(假設用戶名和密碼都是admin)進入用戶或管理員頁面,拒絕繞過登錄頁面直接進入用戶或管理員頁面。

要求創建4個文件,第1個是用戶登錄頁面,此頁面輸入用戶名和密碼以及登錄類型,如圖5-38所示。

    

圖5-37  網上測試單選題                    圖5-38  用戶登錄頁面

第2個文件對提交信息進行檢查,如果輸入正確則根據登錄類型分別進入到管理員或普通用戶頁面,用重定向的方法實現跳轉到這兩個頁面。如果輸入有誤,則彈出警示對話框,如圖5-39所示,讓用戶重新輸入信息。

第3個文件是管理員頁面,顯示管理員成功登錄的信息。

第4個文件是普通用戶頁面,顯示普通用戶成功登錄的信息。

4. 用application對象實現一個簡單的聊天室。

要求採用application對象記錄所有用戶的留言信息並在頁面上顯示出來,如圖5-40所示。

   

圖5-39  警示對話框                    圖5-40  顯示聊天內容

習題六【第三版5章】

一、選擇題

1、在web程序中,cookie和session的信息保存位置分別在哪裏?( )  A

A. cookie保存在客戶端,session保存在服務器端

B. cookie和session都保存在客戶端

C. cookie和session都保存在服務器端

D. cookie保存在服務器端,session保存在客戶端

2、有關會話跟蹤技術描述不正確的是( )。D

A. Cookie是Web服務器發送給客戶端的一小段信息,客戶端請求時,可以讀取該信息發送到服務器端

B.關閉瀏覽器意味着會話ID丟失,但所有與原會話關聯的會話數據仍保留在服務器上,直至會話過期。

C.在禁用Cookie時可以使用URL重寫技術跟蹤會話。

D.隱藏表單域將字段添加到HTML表單並在客戶端瀏覽器中顯示。

3、J2EE中,Servlet API 爲使用Cookie,提供了( )類。     A

A. Javax.servlet.http.Cookie

B. Javax.servlet.http.HttpCookie

C. Javax.servlet. Cookie

D. Javax.servlet.http. HttpCookie

4、帶有名爲myCookie 的cookie存在於客戶計算機上,服務器發送有同名的一個cookie。 這會發生什麼?( )A

A.新cookie 重寫到老的cookie          B.新 cookie 被拒絕

C.作爲拷貝存貯新cookie               D.拋出一個異常

5、不能在不同用戶之間共享數據的方法是( )。A

A.通過cookie

B.利用文件系統

C.利用數據庫

D.通過ServletContext對象

6、如何獲取一個 Cookie[] ?(  )。   A

A.request.getCookies()     

B.request.getCookie()

C.response.getCookies()   

D.response.getCookie()

7、如何發送Cookie? ( )B

A. 使用new Cookie語句

B. 調用response.addCookie方法

C. 使用Cookie的setMaxAge方法

D. setCookie方法

8、將Cookie保存到客戶端,就是爲了以後得到其中保存的數據。以下說法錯誤的是( )。C

A.調用HttpServletRequest的getCookies得到一個Cookie對象的數組

B.在客戶端傳來的Cookie數據類型都是數組類型,因此要得到其中某一項指定的Cookie對象,需要遍歷數組來找。

C.在客戶端傳來的Cookie數據類型都是枚舉類型,因此要得到其中某一項指定的Cookie對象,需要指定元素位置來找。

D.JSP將調用request.getCookies()從客戶端讀入Cookie,getCookies()方法返回一個HTTP請求頭中的內容對應的Cookie對象。

9、Cookie調用getValue( )方法取得( )。A

A.與指定名字關聯的值

B.從客戶端讀入Cookie    

C.檢查各個Cookie的名字

D.檢查各個Cookie的值  

10、下面的代碼使用setMaxAge()方法設置Cookie對象login在一天之內都是有效的是(  )B

A.login.setMaxAge(3600);

B.login.setMaxAge(86400);

C.login.setMaxAge(1);

D.login.setMaxAge(7200);

二、判斷[1:表示對;0:表示錯;]

1、當用戶關閉瀏覽器的時候,Cookie的數據便會消失。(  )0

2、Cookie實質是服務器端與客戶端之間傳送的普通HTTP頭,可以保存也可以不保存在客戶的硬盤上。(  )1

3、Cookie在生成時就會被指定一個Expire值,這就是Cookie的生存週期,在這個週期內Cookie有效,超出週期Cookie就會被清除。(  )1

4、使用Cookie的目的就是爲用戶帶來方便,爲網站帶來增值,但是事實上Cookie會造成嚴重的安全威脅。(  )0

 5、Cookie中的內容大多數經過了加密處理,因此在我們看來只是一些毫無意義的字母數字組合,只有服務器的CGI處理程序才知道它們真正的含義。(  )1

三、填空

1、Cookie數據存儲的功能由      瀏覽器       所提供,因此,Cookie功能都必須要有瀏覽器的支持才行。

2、Response對象的addCookie(Cookie cookie)方法添加一個       Cookie       對象,用來保存客戶端的用戶信息。

3、用Request的      getCookies()       方法可以獲得這個Cookie。

4、用response對象的   addCookie    方法可以將cookie對象寫入客戶端。

5、要刪除某一個客戶端的Cookie,必須使用前面的sexMaxAge()方法,並將Cookie的存在期限設爲__0__。    

四、簡答

1. 簡述Cookie的概念與使用方式。

答:Cookie爲瀏覽器提供的功能,是一種可將聯機用戶的數據存儲在客戶端計算機上的技術,
要運用Cookie必須先建立一個Cookie對象來存儲字符串數據,再將此Cookie對象傳送到客戶端。

2. 查看自己計算機上Cookie文件的保存位置。瀏覽網頁,運行本書的例子,看是否會把信息記錄在此位置?文件是如何命名的?文件的內容是什麼?

答:在默認情況下,Cookie是隨着用戶關閉瀏覽器而自動消失的。所以書上例子不會保存Cookie。如果在例2中我們在usingCookie.jsp中使用setMaxAge()方法,設置Cookie對象的存在期限。這樣Cookie對象就會保存在硬盤中的Cookies文件夾中如“C:\Documents and Settings\Administrator\Cookies”如文件“administrator@ch06[1].txt”。內容是如下代碼  
“name
d
localhost/ch06/
1024
1524104704
30118001
4117789296
30117999
*”

3. Cookie的常見用途有哪些?

(1)網站瀏覽人數管理 
由於代理服務器、緩存等的使用,唯一能幫助網站精確統計來訪人數的方法就是爲每個訪問者建立一個唯一的ID。使用Cookie,網站可以完成以下工作:測定多少人訪問過;測定訪問者中有多少是新用戶(即第一次來訪),多少是老用戶;測定一個用戶多久訪問一次網站。 
通常情況下,網站設計者是藉助後臺數據庫來實現以上目的的。當用戶第一次訪問該網站時,網站在數據庫中建立一個新的ID,並把ID通過Cookie傳送給用戶。用戶再次來訪時,網站把該用戶ID對應的計數器加1,得到用戶的來訪次數或判斷用戶是新用戶還是老用戶。 
(2)按照用戶的喜好定製網頁外觀 
有的網站設計者,爲用戶提供了改變網頁內容、佈局和顏色的權力,允許用戶輸入自己的信息,然後通過這些信息對網站的一些參數進行修改,以定製網頁的外觀。
(3)在電子商務站點中實現諸如“購物籃”等功能 
可以使用Cookie記錄用戶的ID,這樣當你往“購物籃”中放了新東西時,網站就能記錄下來,並在網站的數據庫裏對應着你的ID記錄當你“買單”時,網站通過ID檢索數據庫中你的所有選擇就能知道你的“購物籃”裏有些什麼。

4. Cookie與session有何不同?

session與Cookie同樣是用來記錄上線用戶的個別數據的,兩者的差異在於session是存在於服務器端,
而Cookie則是存在於客戶端。

五、編程

1. 理解並掌握Cookie的作用及利用Cookie實現用戶的自動登錄功能,如圖6-10所示。

圖6-10  應用Cookie保存用戶信息

當服務器判斷該用戶是首次登錄時,會自動跳轉到登錄頁面等待用戶登錄,並填入相關信息。通過設置Cookie的有效期限來保存用戶的信息。關閉瀏覽器後,驗證是否能夠自動登錄,若能登錄打印歡迎信息,否則跳轉到登錄頁面。

 

習題七【第三版6章】

  • 選擇題

1、<jsp:useBean>聲明對象的默認有效範圍爲(  )。A

A. page                       B.   session        C. application                      D. request

2、編寫JavaBean就是編寫一個Java類,所以只要會寫類就能編寫一個Bean,一個完整JavaBean在類的命名上需要遵守以下規則,其中錯誤的是(  )。D

A. 類中方法的訪問屬性必須是public的。

B. 對於boolean類型的成員變量,允許使用is代替get。

C. 類中如果有構造方法,那麼這個構造方法也是public的,並且是無參數的。

D. 在JavaBean中定義屬性時,應該定義成public。

3、關於JavaBean的說法,哪個是正確的?(  )D

A.   JavaBean的具體類可以不是public的。

B.    JavaBean可以只提供一個帶參數的構造器。

C.   jsp:userBean可以向HTML標記一樣不關閉。

D.   JavaBean可以保存狀態。

4、下邊哪個不是MVC中的組成部分?(  )B

A.   JavaBean  B. FrameWork  C.   JSP  D. Servlet

5、下面哪一個是正確使用JavaBean的方式?(  )A

A.   <jsp:useBean id="address" class="AddressBean" />

B.    <jsp:useBean name="address" class="AddressBean"/>

C.   <jsp:useBean bean="address" class="AddressBean" />

D.   <jsp:useBean beanName="address" class="AddressBean" />

6、在JSP中使用<jsp:getProperty>標記時,不會出現的屬性是:(  )C

A.  name     B.  property     C. value        D.以上皆不會出現

7.、在JSP中調用JavaBean時不會用到的標記是:(  )A

A.<javabean>     B. <jsp:useBean>    C.<jsp:setProperty>   D. <jsp:getProperty>

8.、關於JavaBean正確的說法是:( )A

A. Java文件與Bean所定義的類名可以不同,但一定要注意區分字母的大小寫

B. 在JSP文件中引用Bean,其實就是用<jsp:useBean>語句

C. 被引用的Bean文件的文件名後綴爲.java

D. Bean文件放在任何目錄下都可以被引用

9、 test.jsp文件中有如下一行代碼:

<jsp:useBean id=”user” scope=”__” type=”com.UserBean”>

要使user對象可以作用於整個應用程序,下劃線中應添入(  )。D

A.   page    B.    request  C.   session   D.  application

10、下面哪項是錯誤的設置Bean屬性值的方法(   )。 B

A. <jsp:setProperty name="beanInstanceName" property= "*" />

B.<jsp:setProperty name="beanInstanceName" property="propertyName"/>

C.<jsp:setProperty name="beanInstanceName" property="propertyName"

param="parameterName" />

D. <jsp:setProperty name="beanInstanceName" property="*" value="{string | <%= expression

%>}"/>

二、判斷題[1:表示對;0:表示錯;]

1、在MVC模式中,因爲Servlet負責創建JavaBean,所以JavaBean的構造函數可以帶有

參數,除了保留get和set規則外,還可以有其他功能的函數。(   )1

2、Bean文件放在任何目錄下都可以被引用。(  )0

3、get請求處理的數據量大小不受到限制。(   )0

4、<jsp:getProperty>必須出現在其對應的<jsp:usebean>標籤之後。(  )1

5、相同的Javabean只會實例化一次。(   )0

三、填空題

1、Javabean是一種     Java        類,通過封裝     屬性               方法          成爲具有某種功能或者處理某個業務的對象,簡稱bean。

2、在Tomcat中,所有編譯好的JavaBean都需要放在某個應用目錄下的_____WEB-INF/classes_______目錄之下。

3、JSP開發網站的兩種模式分爲______jsp+javabean__________和_____jsp+javabean+servlet___________ 。

4、如果你想使用Javabean設計一個網站計數器,那麼該bean的scope應當設爲    application            

5、按功能JavaBean可以分爲____可視化JavaBean_________和_______非可視化JavaBean_____。

四、問答題

1. 試說明什麼是JavaBean。

答:JavaBean是一種特殊的Java程序,是用於包裝特定功能的程序代碼,
可以被JSP網頁重複使用,其本身無法獨立運行,是JSP網頁程序組件化的核心。

2. 試說明如何在JSP網頁中載入JavaBean。

A:<jsp:useBean id=id-name scope=scope-name class=class-name />

3. JavaBean對象可聲明哪些不同的生命週期?

答:request、session、page及applaction。

4. JavaBean程序除了必須要有一個無傳入值的建構式之外,還有哪些特色?

答:除了必須要有一個無傳入值的建構式之外,還必須是一個公開的類,並以set及get開頭的方法來設置與取得屬性。

5. 試說明Get和Post方法之間的差異?

答:Post和Get這兩種設置方式主要的差異在於數據的傳送方式,
前者將所要傳送的數據包含在HTTP文件頭中,
後者則是將數據直接串接在網址欄的後端,
兩者都可使用GetParameter取得傳送的數據內容。

五、編程

1、要求編寫兩個JSP頁面:input.jsp和show.jsp。編寫一個名字爲car的JavaBean,其中car由Car.class類負責創建。

input.jsp頁面提供一個表單。其中表單允許用戶輸入汽車的牌號、名稱和生產日期,該表單將用戶輸入的信息提交給當前頁面,當前頁面調用名字爲car的bean,並使用表單提交的數據設置car的有關屬性的值。要求在input.jsp提供一個超鏈接,以便用戶單擊這個超鏈接訪問show.jsp頁面。

show.jsp調用名字爲car的bean,並顯示該bean的各個屬性的值。

編寫的Car.java應當有汽車號碼、名稱和生產日期的屬性,並提供相應的getXxx和setXxx方法,來獲取和修改這些屬性的值。

 

習題八[對應第三版本7章]

 

一、選擇題

1.在WEB應用程序的目錄結構中,在WEB-INF文件夾中的lib目錄是放(   )文件的。C

A. .jsp文件  B. .class文件  C. .jar文件  D. web.xml文件

2、java.io.File對象的(   )方法可以新建一個文件。D
A. delete()          B. createFile()       C. mkdir()      D. createNewFile()
3、在JSP應用程序中要求刪除所有photo目錄中的的文件,但是保留文件夾,下列代碼中空缺位置最適合的選項爲(   )。A

String path=request.getRealPath("photo");
File fp1=new File(path);
File[] files=fp1.listFiles();
for(int i=0;i<files.length;i++)
{
   if(__________________________)
     {
            files[i].delete();  
}
}
A. files[i].isFile()       B. files[i].isDirectory()  C. !files[i].isFile()      D. ! files[i].isDirectory()

4、下列File對象的哪個方法能夠判斷給定路徑下的文件是否存在。(   )C

A. canRead()     B .canWrite()    C. exists()       D. isDirectory()

5、BufferedReader處理Reader類中的方法外,還提供了public String readLine()方法,該方

法讀入一行文本,這裏的“一行”指字符串以“\n”或什麼做結尾。(   )C

A. \t      B. \f     C. \r      D. \p

二、判斷題[1:表示對;0:表示錯;]

1、File類直接處理文件和文件系統,它並不涉及文件的讀寫操作。(  )1

2、創建一個File對象,就會在某個物理路徑下創建一個文件或目錄。(  )0

3、使用Java的輸出流寫入數據的時候,就會開啓一個通向目的地的通道,這個目的地可以是文件,但不能是內存或網絡連接等。(  )0

4、“純文本”類的信息,一般使用字符流來進行處理。(  )1

5、InputStream抽象類的read方法出錯後一定會拋出一個IOException異常。(  )1

三、填空題

1、Java中有四個“輸入/輸出”的抽象類,                                                

InputStream 、OutputStream、Writer、Reader

2、從網站上下載jspsmartupload.jar這個文件,將此文件放到網站的    WEB-INF\lib   文件夾底下。

3、字節流類爲處理字節式輸入/輸出提供了豐富的環境,其處理單元爲   1         個字

節;字符流提供了處理任何類型輸入/輸出操作的足夠功能,字符流處理的單元爲         2              

個字節的Unicode字符。

四、問答題

1. JSP網頁使用File類之前,將哪個命名空間載入?

import="java.io.*"

2. 試說明如何利用File類進行文件目錄的操作?

答:利用File類進行文件目錄的操作首先必需建立一個File對象,
將所要操作文件或是目錄完整路徑當作參數傳入,當File對象建立之後,
JSP網頁便可以利用這個對象調用File類的所有方法,以進行各種文件目錄的操作。

3. 簡述文件存取操作的操作過程。

答:首先利用File類建立一個參照指定文件的目錄的File實體對象,
接下來利用FileWriter和FileReader這兩個類,進行指定文件的讀寫,
其中的FileWriter的write方法,負責將數據寫入文件,而FileReader的read則用來讀取文件中的數據。

五、編程

1、 創建兩個文件selectContent.jsp和writeContent.jsp,首先使用selectContent.jsp中的表單輸入存放路徑、保存的文件名和將要寫入文件的文件內容信息,提交後,由writeContent.jsp文件負責將內容寫到指定的文件中,同時放到指定的路徑下。運行結果如圖8-12和圖8-13所示。

 

圖8-12  selectContent.jsp頁面

 

圖8-13  提交成功後的結果

2、. 創建兩個文件selectFile.jsp和readContent.jsp。首先使用selectFile.jsp中的表單輸入存放路徑和將要讀取的文件名,提交後,由readContent.jsp文件負責將文件讀出並顯示在頁面上。運行結果如圖8-14和圖8-15所示。

             

圖8-14  selectFile.jsp頁面                          圖8-15  提交成功後的結果

 

習題九

 

一、選擇題

1、以下關於MySQL的說法中錯誤的是:(  )  D

A. MySQL是一種關係型數據庫管理系統  

B. MySQL軟件是一種開放源碼軟件  

C. MySQL服務器工作在客戶端/服務器模式下,或嵌入式系統中 

D. MySQL配置嚮導將用戶選擇結果放到模板中生成一個 my.xml文件

2、要想對錶中記錄分組查詢,可以使用哪一子句?(  )A

A. GROUP BY   B. AS GROUP   C. GROUP AS   D. TO GROUP

3、使用 DELETE 刪除數據時,會有一個返回值,其含義是:(  )A

A.被刪除的記錄的數目 

B.刪除操作所針對的表名

C.刪除是否成功執行  

D.以上均不正確

4、在顯示數字時,要想使用0作爲填充符,可以使用哪一關鍵字?(   )A

 A. ZEROFILL   B. ZEROFULL   C.FILLZERO   D. FULLZERO

5、以下哪些命令是DDL語句(  )B

A. ALTER TABLE命令

B. CREATE DATABASE命令

C. SELECT 命令

D. INSERT命令

 

二、填空題

1、在創建數據庫時,可以使用_If not exists__子句確保如果數據庫不存在就創建它,如果存在就直接使用它。

2、有時我們在查詢中,需要從查詢的結果中消除重複的內容,這時可以使用______DISTINCT___關鍵字來實現這一要求。

3、如果一個列是____整數_____類型,則可以使用“___AUTO_INCREMENT______________”關鍵字 如果一個列是指定該列的值自動增加。

4、使用MySQL命令時,缺省主機名是localhost

5、在關係模型中,實現"關係中不允許出現相同的元組"的約束是通過_主鍵____。

三、上機練習

1. 創建一張學生表,包含以下信息,學號、姓名、年齡、性別、家庭住址、聯繫電話。

2. 修改學生表的結構,添加一列信息,學歷。

3. 修改學生表的結構,刪除一列信息,家庭住址。

4. 向學生表添加如下信息:

學號 姓名  年齡  性別  聯繫電話  學歷

1)     A     22    男    123456   小學

2)     B     21    男    119      中學

3)     C     23    男    110      高中

4)     D     18    女    114      大學

5. 修改學生表的數據,將電話號碼以11開頭的學員的學歷改爲“大專”。

6. 刪除學生表的數據,將姓名以C開頭、性別爲男的記錄刪除。

7. 查詢學生表的數據,將所有年齡小於22歲、學歷爲“大專”的學生的姓名和學號顯示出來。

8. 查詢學生表的數據,查詢所有信息,列出前25%的記錄。

9. 查詢出所有學生的姓名、性別和年齡,並按年齡降序排列。

10. 按照性別分組查詢所有學生的平均年齡。

 

習題十【對應三版本8章】

 

一、選擇題

1、創建JSP應用程序時,配置文件web.xml應該在程序下的(   )目錄中。C
       A. admin       B. servlet       C. WEB-INF        D. WebRoot

2、 Oracle數據庫的JDBC驅動程序類名及完整包路徑爲:(   )D

A.   jdbc.driver.oracle.OracleDriver

B.    jdbc.oracle.driver.OracleDriver

C.   driver.oracle.jdbc.OracleDriver

D.   oracle.jdbc.driver.OracleDriver

3、請選出微軟公司提供的連接SQL Server 2000的JDBC驅動程序。(   )C

A. oracle.jdbc.driver.OracleDriver                   B. sun.jdbc.odbc.JdbcOdbcDriver

C. com.microsoft.jdbc.sqlserver.SQLServerDriver       D. com.mysql.jdbc.Driver

4、下述選項中不屬於JDBC基本功能的是:( )D

A. 與數據庫建立連接 B.  提交SQL語句   C.  處理查詢結果 D.  數據庫維護管理

5.在 JSP中,便用 Resultset對象的 next()方法移動光標時,如果超過界限,會拋出異常,該異常通常是(   )。C

A.InterruptedExceptlon   B.AlreadyBoundExceptlon  C.SQLException  D.NetExcePtlon

6、cn是Connection對象,創建Statement 對象的方法是:(   )B

A. Statement st=new Statement ();       B. Statement st=cn.createStatement()

7、查詢數據庫得到的結果集中,遊標最初定位在(    )。B

A. 第一行  B. 第一行的前面  C. 最後一行  D. 最後一行的後面

8、在JDBC中,下列哪個接口不能被Connection創建(  )。D

A.Statement   B.PreparedStatement      C.CallableStatement      D.RowsetStatement

9、該程序加載的是哪個驅動?(   )A

A. JDBC-ODBC橋連接驅動      B.部分Java編寫本地驅動

C. 本地協議純Java驅動         D.網絡純Java驅動

10、下列代碼生成了一個結果集

conn=DriverManager.getConnection(uri,user,password);

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_READ_ONLY);

rs=stmt.executeQuery("select * from book");

rs.first();rs. previous();

下面哪項對該rs描述正確( )

A.rs.isFirst()爲真  B.rs.ifLast()爲真  C.rs.isAfterLast()爲真  D.rs.isBeforeFirst()爲真

二、判斷題[1:表示對;0:表示錯;]

1、使用JDBC-ODBC橋效率會有所降低。(  )1

2、Statement對象提供了int executeUpdate(String sqlStatement)方法,用於實現對數據庫中數據的添加、刪除和更新操作。(  )1

3、數據庫服務與Web服務器需要在同一臺計算機上。(  )0

4、使用數據庫連接池需要煩瑣的配置,一般不宜使用。(  )0

5、JDBC構建在ODBC基礎上,爲數據庫應用開發人員、數據庫前臺工具開發人員提供

了一種標準,使開發人員可以用任何語言編寫完整的數據庫應用程序。(  )0

三、填空題

1、JSP應用程序配置文件的根元素爲 _______<web-app>___________。

2、JDBC的主要任務是:__________________、__________________、__________________。

與數據庫建立連接    、    發送SQL語句  、   處理結果   。

3、如果想創建一個不敏感可滾動並且不可更新的結果集,參數選擇__________________和__________________。

ResultSet.TYPE_SCROLL_INSENSITIVE   ResultSet.CONCUR_READ_ONLY

4、在可更新的結果集中插入一條新紀錄,需要移動首先到可更新行,調用_______moveToInsertRow();___________函數。

5、Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 是__________Access________數據庫的加載驅動語句。

四、問答題

1. 試說明Statement與ResultSet接口的意義,以及它們生成的對象在JSP程序處理數據庫時,分別扮演着什麼樣的角色?

答:Statement:Statement接口中主要是提供了一些SQL運行的方法,
以及設置運行SQL後所返回ResultSet類型對象的屬性。
由此接口所生成的對象在JSP中同樣是用來運行各種SQL指令與設置Resultset對象的屬性。
ResultSet:ResultSet接口下所定義的方法大都是用來控制ResultSet對象中指針的移動的,
以取得其中的數據元素。

2. 試列舉說明Statement運行SQL指令的3種方法成員。

答:execute():運行一般SQL指令,例如建立數據庫、修改數據表等等。
executeQuery():運行以SELECT語句開頭的描述,
這個方法同時返回一個包含查看結果的ResultSet對象。

3. 說明如何一次運行多段SQL語句。

答:首先建立一個Statement對象,將多個想要運行的SQL指令以addBatch()方法加到批處理文檔中,
最後引用executeBacth()方法運行。

五、編程

1. 使用本章的數據庫ch10中student表的結構,創建3個頁面selectStudent.jsp、byNumber.jsp和byName.jsp,通過JSP頁面對student表進行名字和學號的查詢。運行效果如圖10-28、圖10-29和圖10-30所示。

 

圖10-28  selectStudent.jsp頁面

 

圖10-29  byNumber.jsp頁面

2. 使用本章數據庫ch10中student表的結構通過JSP頁面對student表進行添加、刪除和修改。添加JSP頁面處理功能:添加新學生、修改和刪除選中的學生信息,如圖10-31所示(或者自行設計界面)。

   

圖10-30  byName.jsp頁面                            圖10-31  演示頁面

 

 

十一章無習題

習題十二【對應三版本10章】

 

一. 選擇題

1. 下面Servlet的哪個方法用來爲請求服務,在Servlet生命週期中,Servlet每被請求一次它就會被調用一次。( )

A.service()     B.init()    C. doPost()      D.destroy()

2. Servlet 可以在以下(  )三個不同的作用域存儲數據。

A.HttpServletRequest、HttpServletResponse、HttpSession

B.HttpServletRequest、HttpSession、ServletContext

C.HttpServletResponse、HttpSession、ServletContext

D.HttpServletRequest、HttpServletResponse、ServletContext

3. 在J2EE中,Servlet從實例化到消亡是一個生命週期。下列描述正確的是( )。

A.在典型的Servlet生命週期模型中,每次Web請求就會創建一個Servlet實例,請求結束Servlet就消亡了

B.init()方法是容器調用的Servlet實例此方法僅一次

C.在容器把請求傳送給Servlet之後,和在調用Servlet實例的doGet或者doPost方法之前,容器不會調用Servlet實例的其他方法

D.在Servlet實例在service()方法處理客戶請求時,容器調用Servlet實例的init()方法一定成功運行了

4. 在J2EE中,給定某Servlet的代碼如下,編譯運行該文件,以下陳述正確的是( )。

Public class Servlet1 extends HttpServlet{

   Public void init() throws ServletException{

   }

   Public void service(HttpServletRequest request,HttpServletResponse response)

           Throws ServletException,IOException{

       PrintWriter out = response.getWriter();

       Out.println(“hello!”);

   }

}

A. 編譯該文件時會提示缺少doGet()或者dopost()方法,編譯不能夠成功通過

B.編譯後,把Servlet1.class放在正確位置,運行該Servlet,在瀏覽器中會看到輸出文字:hello!

C.編譯後,把Servlet1.class放在正確位置,運行該Servlet,在瀏覽器中看不到任何輸出的文字

 D.編譯後,把Servlet1.class放在正確位置,運行該Servlet,在瀏覽器中會看到運行期錯誤信息

5. 下面是IP地址爲222.22.49.189Web服務器上,ch應用下的一個Servlet部署文件的片段:

   <servlet>

       <servlet-name>Hello</servlet-name>

       <servlet-class>myservlet.example.FirstServlet</servlet-class>     

   </servlet>

   <servlet-mapping>

       <servlet-name>Hello</servlet-name>

       <url-pattern>/helpHello</url-pattern>

   </servlet-mapping>

   訪問此Servlet的URL地址是。(  )

A.http://222.22.49.189:8080/ch/helpHello

B.http://222.22.49.189:8080/ch/helpHello.java

C.http://222.22.49.189:8080/helpHello

D./helpHello

6. 在Web應用的部署描述文件中下面哪個選項能夠將com.example.LoginServlet servlet 映射爲 /utils/LoginServlet?(  )

A. <servlet>

<servlet-class>com.example.LoginServlet</servlet-class>

<url-pattern>/utils/LoginServlet</url-pattern>

</servlet>

B. <servlet-mapping>

<servlet-class>com.example.LoginServlet</servlet-class>

 <url-pattern>/utils/LoginServlet</url-pattern>

</servlet-mapping>

C. <servlet>

<servlet-mapping>

<servlet-class>com.example.LoginServlet</servlet-class>

<servlet-name>Login Servlet</servlet-name>

<url-pattern>/utils/LoginServlet</url-pattern>

</servlet-mapping>

</servlet>

D. <servlet>

<servlet-name>Login.Servlet</servlet-name>

<servlet-class>com.example.LoginServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Login.Servlet</servlet-name>

<url-pattern>/utils/LoginServlet</url-pattern>

</servlet-mapping>

7. 在Web容器中,以下哪兩個類別的實例分別代表HTTP請求與響應對象?(  )

A. HttpRequest                  B. HttpServletRequest

C. HttpServletResponse            D. HttpPrintWriter

二. 判斷[1:表示對;0:表示錯;]

1. 不能給一個Servlet映射多個訪問路徑。(  )

2. JSP技術是在Servlet之後產生的,它以Servlet爲核心技術,是Servlet技術的一個成功應用。(  )

3. 實現轉發需要兩個步驟,首先在Servlet中要得到RequestDispatcher對象,然後在調用該對象的forward方法實現轉發。(  )

三. 填空

1. 在Servlet中有兩種異常處理機制:______和_______。

2. 如果某個類要成爲Servlet,則它應該繼承_________、________或_________接口或類。

3. Servlet 的生命週期又一系列事件組成,把這些事件按照先後順序排序_________、________、_________、________、_________。

四. 簡答

1. 簡述Servlet和JSP的關係。

2. 簡述Servlet的生命週期。

3. 簡述HttpSession接口的功能和使用方法。

4. 簡述開發一個Servlet所需要的步驟。

五、編程

1. 編寫一個HTML頁面和一個Servelt,實現利用Servelt()的doPost()方法讀取HTML文件中Form表單內容。

2. 編寫一個利用HttpSession接口的用戶登錄的Servlet,當用戶已經登錄時,返回歡迎信息,否則轉向登錄頁面。

 

 

習題十三【對應三版本11章】

 

一、選擇題

1. 在web.xml文件中,有下列代碼:

<filter-mapping>

   <filter-name>LogFilter</filter-name>

   <url-pattern>/*.jsp</url-pattern>

   < dispatcher > REQUEST </ dispatcher >

   < dispatcher > INCLUDE < /dispatcher >

</filter-mapping>

 

Hello.jsp文件的代碼如下:

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="java.sql.*" %>

<html>

<body bgcolor=cyan>

 <jsp:include file="date.jsp"/>

 <jsp:forward page="helpHello.jsp"/>

 <a href="login.jsp">登錄</a>

</body>

</html>

訪問Hello.jsp文件,過濾器LogFilter過濾的文件有( )

A.Hello.jsp            B.helpHello.jsp

C.login.jsp            D.date.jsp

2. 下列哪個不屬於監聽器接口ServletContextAttributeListener提供的方法()

A.public void attributeAdded(ServletContextAttributeEvent event)

B.public void attributeRemoved(ServletContextAttributeEvent event)   

C. public void attributeReplaced(ServletContextAttributeEvent event)     

D.public void valueBound(HttpSessionBindingEvent event)

3. 下列哪個不屬於Servlet2.3提供的監聽器。( )

A.ServletContext對象狀態變化(事件)的監聽器

B.HttpSession對象狀態變化(事件)的監聽器

C.HttpServletRequest對象狀態變化(事件)的監聽器

D.HttpServletResponse對象狀態變化(事件)的監聽器

4. 爲了實現對下列jsp代碼動作的監聽,需要定義的監聽器必須實現下列哪些接口。( )

test.jsp文件代碼如下:

<%

getServletContext().setAttribute("userName","hellking");

getServletContext().removeAttribute("userName");

request.getSession.setAttribute("user","hellking");

%>

A. ServletContextListener           B. ServletContextAttributeListener

C. HttpSessionAttributeListener      D. HttpSessionBindingListener

E. ServletRequestAttributeListener

5.給定某Servlet程序的片段如下,用戶在瀏覽器地址欄中鍵盤鍵入正確的請求URL並回車後,在控制檯上顯示的結果是。()

   public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException ,IOException

   {

   System.out.println("get");

       doPost(request,response);

   }

   public void doPost(HttpServletRequest request,HttpServletResponse response)  throws ServletException ,IOException

   {

   System.out.println("post");

   }

A.get      B.post     C.getpost     D.postget

 

二、判斷[1:表示對;0:表示錯;]

1. 部署過濾器的工作內容,實際就是在Web應用的Web.xml文件中配置過濾器。(  )

2. 在Web.xml文件中部署監聽器,用<listener>註冊監聽器,用<listener-mapping>映射監聽器。( )

3. 如果使指定的IP訪問JSP時報錯,並告知用戶不能訪問,可以使用監聽器。(  )

三、填空

1. 對Web應用來說,_______就是駐留在服務器端,在源數據和目的數據間,對Web請求和Web響應的頭屬性(Header)和內容體(Body)進行操作的一種特殊Web組件。

2. 過濾器對象使用_______對象調用過濾器鏈中的下一個過濾器或者是目標資源。

3. 在J2EE中,使用Servlet過濾器時,需要在web.xml通過_____元素將過濾器映射到Web資源。

4. 在一個Filter中,處理filter業務的是____方法。 

四、簡答

1. 什麼是過濾器?什麼是監聽器?分別應用在哪些方面?

2. Filter接口、FilterConfig接口和FilterChain接口的功能分別是什麼?提供的方法有哪些?

3. ServletContextListener接口、ServletContextAttributeListener接口和HttpSessionBindingListener接口的功能分別是什麼?提供的方法有哪些?

4. JSP亂碼如何解決,列舉幾種解決方案?

5. 如何編寫、配置過濾器,舉例說明?

6. 如何編寫、配置監聽器,舉例說明?

五、編程

1. 編寫一個過濾器LogFilter.java,對Request請求進行過濾,記錄請求的訪問時間戳、從請求獲取遠程地址、從請求獲取遠程主機名、客戶請求的資源URI、客戶用的瀏覽器,並記錄到日誌文件中。

2. 編寫一個監聽器ContextListener .java,監聽Web應用的啓動和停止,並記錄到日誌文件中。

 

習題十四【對應三版本12章】

一. 選擇題

1.  給定程序片段:

  <% String value = "beanvalue"; %>

  <% request.setAttribute ("com.example.bean", value); %>

  <%--插入代碼處--%>

在第3行插入哪個EL表達式,能夠計算並輸出"beanValue"。( )

A. ${bean}       B. ${value}      C. ${beanValue}

D. ${com.example.bean}

E. ${requestScope["com.example.bean"]}

F. ${request.get("com.example.bean").toString()}

2. 假定在web應用中,請求參數productID包含產品的標識符,下面哪兩個EL表達式能夠計算productID的值。(  )

A. ${product ID}

B. ${param.productID}

C. ${params.productID}

D. ${params.productID[1]}

3. 用戶的會話對象中存在屬性cart,以下哪兩條語句能夠將該屬性從session中刪除( )  

A. ${cart = null}

B. <c:remove var="cart" />

C. <c:remove var="${cart}" />

D. <c:remove var="cart" scope="session" />

E. <c:remove scope="session">cart</c:remove>

F. <c:remove var="${cart}" scope="session" />

G. <c:remove scope="session">${cart}</c:remove>

4. 在JSP頁面中,開發人員需要構建如下的動態代碼:

if ( test1 ) {

  // action1

 } else if ( test2 ) {

  // action2

} else {

  // action3

}

下面個JSTL的結構能夠實現相同的功能?

A. <c:choose>

<c:when test="test1" >action1</c:when>

<c:when test="test2">action2</c:when>

<c:when>action3</c:when>

</c:choose>

B. <c:choose>

<c:when test="test1">action1</c:when>

<c:when test="test2">action2</c:when>

<c:otherwise>action3</:otherwise>

</c:choose>

C. <c:if test="test1">

<c:then>action1</c:then>

<c:else-if test=""test2">

<c:then>action2</c:then>

<c:else>action3</c:else>

</c:else-if>

</c:if>

D. <c:if test="test1">

<c:then>action1</c:then>

<c:else>

<c:if test="test2">

<c:then>action2</c:then>

<c:else>action3</c:else>

</c:if>

<c:else>

<c:if>

二. 判斷[1:表示對;0:表示錯;]

1. JSTL代碼片段<c:import url="foo.jsp"/>能夠實現導入其他web資源的功能。( )

2. <fmt:setLocale>是用於設置本地屬性的JSTL標記。( )

3. SQL標記庫中的標記<sql:query>是用來修改數據庫中的記錄。(  )

三. 填空

1. 假定在web應用中,請求參數productID包含產品的標識符,能夠計算productID值的EL表達式____。

2. JSTL的全稱是____。

3. JSTL提供的標籤分爲5大類,分別是_____、______、______、______和______。

4. 在JSTL核心標籤當中,網頁數據的存取操作行爲是由標籤_______、_____與______等3個標籤所設置的。

5. 在與url有關的標籤中,______用來設置一個超級鏈接。

6. 流程控制標籤用來控制程序運行的流程, __________搭配__________與__________,來進行多重判斷。

7. <c:forEach>標籤通過屬性值_____、_____與_____控制循環的間隔數及起始與結束值。

8. <c:out>標籤中使用____屬性表示要輸出的內容。

9. <c:set>標籤的作用是____。

10. 標識EL語法元素的符號爲______。

11.  EL中的三元運算符爲________。

12. 與存活期範圍有關的4個隱含對象分別是______、_______、_______以及_______。

13. 隱含對象_______與_______,可直接用來存取表單傳遞的參數。

14 系統初始化數據存放於WEB-INF文件夾的_____,隱含對象____可用來對其進行訪問。

四. 簡答

1. 請簡述JSTL與一般的JSP技術有何差異。

2. JSTL標籤的分類主要有哪幾種,請簡單說明。

3. 使用JSTL有何優點?

4. 在Tomcat中安裝使用JSTL的步驟有哪些?

5. <c:if>和<c:choose>這兩種標籤都可以用來進行流程判斷,請說明它們的差異及用法。

6. 說明如何使用JSTL所提供的<sql:setDataSource>標籤設置聯機信息。

7. 在EL中訪問變量的值可以使用如下的EL元素:${變量名},如果沒有指定變量的有效範圍,JSP容器會依次到哪幾個範圍內查找該變量?

8. 說明如何運用隱含對象取得表單參數

五. 編程

1. 使用JSTL標準標記庫中的標記輸出1~100的數字之和。

提示:本程序所使用的JSTL核心標記庫的uri爲http://java.sun.com/jsp/jstl/core。

2. 使用標準標籤庫中的<c:foreach>標籤、<c:if>標籤和<c:out>標籤列出1~100中能被2整除不能被3整除的數字。

 

習題十五【19.6.30.不考】

 

一.選擇題

1. 在動態Web頁面使用自定義標籤,需要編寫的文件有(    )。

 A.  tag文件     B.  tld文件      C.  dtd文件

  D.  .xml文件    E.  java文件     F.  jsp文件

2. 所有的標籤處理器類都要實現(   )接口。這個接口是在JSP 2.0中新增加的一個標識接口,它沒有任何方法,主要是作爲基類。

A. JspTag       B. Tag      C. SimpleTag    D. BodyTag

3. 作爲 IterationTag接口中doAfterBody()方法的常量返回值,表示請求重複執行標籤體的是(   )。

A.  EVAL_BODY_INCLUDE     B.  EVAL_BODY_ AGAIN

C.  SKIP-BODY                D.  EVAL-PAGE

E.  EVAL_BODY_BUFFERED    F.  SKIP-PAGE

二. 判斷[1:表示對;0:表示錯;]

1. 在web.xml的根元素<web-app>下通過<jsp-config>元素指定要引入的標籤庫。( )

2. public static final int EVAL-BODY- INCLUDE作爲doStartTag()方法的返回值,表示標籤體要被執行,執行結果輸出到當前的輸出流中。( )

3. public static final int EVAL-PAGE作爲doStartTag()方法的返回值,表示忽略標籤體。( )

三. 填空

1. 在J2EE中,標籤庫中文件(*.tld)存放在____目錄下。

2. 在J2EE中,若要在JSP正確使用標籤:<x:getKing/>,在jsp中聲明的taglib指令爲:

<%@taglib uri=”/WEB-INF/myTags.tld”prefix=”___"%> 。

四. 簡答

1. 創建自定義標籤哪有幾種方式?如何使用自定義標籤?

2. 編寫自定義標籤的步驟是什麼。

五. 編程

1. 使用Tag接口編寫一個輸出welcome的自定義標籤。

2. 通過繼承TagSupper類實現輸出welcome的自定義標籤。

3. 通過繼承BodyTagSupport類實現welcome的迭代輸出。

4. 進行算術運算,把結果顯示在頁面上,如圖15-11所示。標籤類MyBody.java採用帶Body的標籤實現,Jsp頁面body.jsp使用用標籤。

 

圖15-11 帶body的標籤

 

習題十六

採用MVC模式編寫用戶登錄驗證程序,系統中的文件可參考表16-11提示。

表16-11  用戶登錄模塊劃分

分    類

文  件  名

作    用

JSP頁面

welcome.jsp

成功登錄顯示歡迎界面。

login2.jsp

進行登錄界面

loginerr.jsp

登錄錯誤重定向頁面

JavaBean

UserBean.java

保存多個用戶信息,可以在多個JSP頁面中傳遞用戶數據

UserCheckBean.java

對用戶名和密碼進行驗證

Servlet

ControllerServlet

作爲控制器,接收客戶登錄的信息,調用JavaBean組件對用戶登錄信息進行驗證,並根據驗證結果調用JSP頁面返回給客戶端

部署描述符

web.xml

部署Servlet文件

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章