Java Web應(yīng)用開發(fā)項目教程 王俊松 練習題及答案_第1頁
Java Web應(yīng)用開發(fā)項目教程 王俊松 練習題及答案_第2頁
Java Web應(yīng)用開發(fā)項目教程 王俊松 練習題及答案_第3頁
Java Web應(yīng)用開發(fā)項目教程 王俊松 練習題及答案_第4頁
Java Web應(yīng)用開發(fā)項目教程 王俊松 練習題及答案_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

練習1:Web服務(wù)器原理

學號姓名:班級:成績:

一、不定項選擇(每題2分,共10分)

1.以下哪些屬于瀏覽器的功能(),哪些屬于Web服務(wù)器的功能().

A.編輯HTML文檔B.展示網(wǎng)頁中的圖片C.解析并展示HTML文檔

D.發(fā)送HTTP請求,接收HTTP響應(yīng)E.接收HTTP請求,發(fā)送HTTP響應(yīng)

2.什么是靜態(tài)網(wǎng)頁?()

A.就是指事先存放在Web服務(wù)器端文件系統(tǒng)中的HTML文檔

B.就是不允許包含聲音、動畫等的HTML文檔

C.只能包含HTML標簽,不能包含其它任何語言代碼的HTML文檔

D.不允許修改的HTML文檔

3.安裝了Tomcat,但無法啟動Tomcat,可能是由于哪些原因引起的?()

A.沒有安裝JDKB.Tomcat與JDK的版本不匹配

C.安裝了JDK,但是環(huán)境變量配置不上確D.沒有安裝瀏覽器

E.沒有安裝EclipseF.有進程占用了Tomcat的端口

4.Javaweb應(yīng)用的文件必須按照規(guī)范部署到服務(wù)器上,下面關(guān)于部署結(jié)構(gòu)的說法錯誤的是()

A.classes目錄在web應(yīng)用根目錄下。

B.WEB-INF在web應(yīng)用根目錄下,WEB-INF中包含classes目錄,存放的是編譯后的class文件。

C.頁面文件可以直接存放在web應(yīng)用的根目錄下。

D.web部署描述符web.xml存放在web應(yīng)用根目錄下的WEBTNF目錄中。

5.下面關(guān)于Eclipse下的web工程,說法正確的是()

A.Java文件存放在工程根目錄下的JavaResources/src中

B.頁面文件一般存放在工程根目錄下的WebContent中,或者WebContent的子目錄中。

C.WEB-INF文件夾在WebContent根目錄下,包含lib文件夾和web.xml

D.web部署描述符web.xml存放在WebContent根目錄下。

二、填空(每空1分,共20分)

1.一個URL:http://o-w.runoob.com/http/http-methods.html,它的

應(yīng)用層協(xié)議是__________________________________

主機(web服務(wù)器)域名是

資源路徑是__

2.HTTP響應(yīng)的狀態(tài)碼中,表示響應(yīng)成功,表示請求的資源不存在。

3.Tomcat根目錄下的文件夾用于存放Tomcat的各種命令對應(yīng)的批處理文件或者可執(zhí)行程序,

該文件夾下的批處理文件可以用于啟動tomcato

4.在Tomcat根目錄下的文件夾一般用于存放web應(yīng)用。

5.web.xml(web部署描述符)存放在web應(yīng)用根目錄下的文件夾中。

6.安裝完Tomcat后,如果想測試是否成功,可以啟動Tomcat,并在瀏覽器中輸入地址

,如果能看到Tomcat的歡迎頁面,表示成功。

7.鍵盤上的鍵可以用于啟動瀏覽器的開發(fā)者工具,開發(fā)者工具的選項卡可以用于查

看請求和響應(yīng),——選項卡可以用來查看網(wǎng)頁元素(填中英文名稱均可)。

8.假設(shè)一個web應(yīng)用為helloapp,應(yīng)用中有一個頁面hello.html,它的路徑是:

tomcat根目錄/webapps/helloapp/comon/hello.html,在瀏覽器中訪問hello,html應(yīng)該輸入的地址:

9.接上題,如果在web.xml中添加了<welcome-file>common/hello.html〈/welcome-file>配置,在瀏覽器

中訪問hello.html地址還可以寫成:。

10.表單<form>的______屬性用來指定請求提交方法,屬性值為時請求以GET方式提交,屬

性值為時請求以POST方式提交。屬性用于指定表單提交地址。

11.a.html和b.html兩個頁面位于同一web應(yīng)用的同一文件夾下,a.html中有一個超鏈接,鏈接到b.html,

并攜帶兩個請求參數(shù),參數(shù)page的值為1,參數(shù)keywords的值為web,請補全超鏈接:

<ahref=**>提交(/a>

三、簡答(每題10分,共30分)

1.請例舉會向服務(wù)器發(fā)送GET請求的場合,描述GET請求的特征。(10分)

2.例舉會向服務(wù)器發(fā)送POST請求場合。描述POST請求的特征。(10分)

3.下面是一個Eelipse中的web工程,請仔細觀察工程結(jié)構(gòu)回答下面的問題。(10分)

*梨servletApp

1)這是index.html中的表單部分代碼,該表單以GET方法提交,該表單提

>幼DeploymentDescriptor

>&JAX-WSWebServices交到check.jsp,請補全下劃線。

▼AJavaResources<form___________________________________________>

>Qsrc

工作:<inputtype=*text*name=*job*/>

>aLibraries

>0JavaScriptResources年限:〈inputtype=*text*name=*years*/>

>abuild</form>

veWebContent

>eimg

2)如果用戶輸入的工作是"醫(yī)生",年限是"3”,請寫出請求參數(shù)字符串。

>fe-META-INF

*epages

*邑common

管checkjsp

£iindex.html

▼3WEB-INF

>e>lib

wweb.xml

3)假設(shè)web應(yīng)用己經(jīng)部署到Tomcat,使用瀏覽器訪問index,html,請寫出訪問地址。

4)假設(shè)tomcat的根目錄為D:/tomcat,應(yīng)用已經(jīng)部署到其webapps文件夾下,請按要求寫路徑:

index,html部署后的文件路徑:

check.jsp部署后的文件路徑:

web.xml部署后的路徑:

練習2:Servlet基礎(chǔ)

學號:姓名:班級:成績:_______

一、選擇(每空1分,共8分)

1.Servlet容器通過調(diào)用Servlet的方法來初始化Servlet,并且傳遞一個一②一對象給它。橫線處

應(yīng)填?()

A.①initO②ServletConfigB.①service。②servletRequest

C.①service。②ServletConfigD.①init()②servletRequest

2.當客戶請求到達Servlet容器時,容器將請求包裝成①―對象,將其傳遞給__②.方法,從請求對象

中獲得用戶請求信息,進行處理后,把響應(yīng)信息包裝在一③—對象中,通過I/O流將結(jié)果發(fā)回客戶端。()

A.①ServletRequest②service。③ServletResponse

B.①ServletConfig②init()③ServletResponse

C.①ServletRequest②service③PrintWriter

D.①ServletRequest②init③ServletResponse

3.在web.xml中使用()元素來設(shè)置servlet初始化參數(shù)。()元素來定義Web應(yīng)用上下文參數(shù)。

A.<init-param>B.<context-param>C.<servlet>D.<servlet-mapping>

4.通過()對象的gelInitParameter方法取得servlet初始化參數(shù),通過()對象的getlnitParameter

方法取得Web應(yīng)用上下文參數(shù)。

A.ServletRequestB.ServletContextC.ServletConfigD.ServletResponse

5.helloapp應(yīng)用中有一個HelloServlct類,它位于org.javathinker包下。這個應(yīng)用部署后,HeiloServlet

類的class文件在什么目錄下()

A.helloapp/WEB-INF/src/HelloServlet.class

B.helloapp/WEB-1NF/He11oServlet.class

C.helloapp/WEB-INF/classes/HelloServlet.class

D.helloapp/WEB-1NF/c1asses/org/javathinker/He11oServlet.class

6.ServletContext對象的說法正確的是?()

A.對于每個HTTP請求,Servlet容器都會創(chuàng)建一個ServletContext對象

B.由JavaWeb應(yīng)用本身負責為自己創(chuàng)建一個ServletContext對象

C.每個JavaWeb應(yīng)用啟動時,Servlet容器都會為其創(chuàng)建一個ServletContext對象

D.一個web服務(wù)器啟動后,會創(chuàng)建唯一的ServletContext對象,該服務(wù)器上的所有應(yīng)用共享此對象

二、填空(每空1分,共12分)

1.HttpServlet類的service方法會依據(jù)不同類型的請求,調(diào)用不同的方法,如果接收到的是GET請求,

調(diào)用方法,如果接收到的是POST請求,調(diào)用。

2.假設(shè)一個應(yīng)用helloapp中有一個ProductServlet.該servlet的url-pattern設(shè)置為—

時,可以通過地址http:〃127.0.0.1:8080/helloapp/servlet/showProducts來訪問它。

3.假設(shè)有一個Student類型的對象s,通過request.setAttribute("stu”,s)語句存儲到了當前的請求

對象中,通過下面的語句可以將存儲的Student對象取出。請補全:

stu=;

4.請求轉(zhuǎn)發(fā)方法forward中的路徑,如果寫絕對路徑,應(yīng)該以____開頭,其代表—

如果寫相對路徑,應(yīng)該___________開頭,該路徑相對于O

5.重定向sendRedirect方法中的路徑,如果以"/"開頭是絕對路徑,代表。

6.表單/超鏈接中的路徑,如果寫絕對路徑,應(yīng)該________開頭,其代表

三、簡答(每題10分,共20分)

1、請論述什么是請求轉(zhuǎn)發(fā),什么是重定向,兩者的特征和區(qū)別。

2、請論述請求對象中的參數(shù)(parameter)和屬性(attribute)的區(qū)別。

四、程序(20分)

1.helloapp應(yīng)用中有index,jsp頁面和HelloServlet類,類在njcit.edu.cn包中。用戶在頁面中輸入

姓名和年齡,提交請求給HelloServlet。servlel取出請求中攜帶的參數(shù),向客戶端返回響應(yīng)“***今年***

歲(1)HelloServlet在web.xml中的部分配置如下,請補全:

<servlet>

<serv1et-name></serv1et-name>

<servletclass〉</servletclass〉

</servlet>

<servlet-mapping>

<serv1et-name></servlet-name>

<url-pattern>/hello</url-pattern>

</servlet-mapping>

(2)這是index,html中的部分代碼(提交按鈕代碼省略),該表單以POST方法提交給HelloServlet處理,

補全下劃線。

<form>

姓名:〈inputtype=*text*name=*realName*/>年齡:〈inputtype=*text*name=*age*/>

</form>

(3)補全HelloServlet的d。***方法。

publicclassHeiloServletextendsHttpServlet{

publicvoid(HttpServletRequestrequest,HttpServletResponseresponse){

})

練習3:JDBC

學號:姓名:班級:成績:_______

一、選擇(每題1分,共10分)

1.JDBC能做哪幾件事?()

A.和數(shù)據(jù)庫建立連接B.向數(shù)據(jù)庫發(fā)送SQL語句C.處理數(shù)據(jù)庫的查詢結(jié)果D.以上全部

2.使用JDBC要導入哪個包?()

A.java,sqlB.java,jdbcC.java,utilD.javax.swing

3.在編寫訪問數(shù)據(jù)庫的Java程序時,Connection對象的作用是()。

A.用來表示與數(shù)據(jù)庫的連接B.存儲查詢結(jié)果

C.在指定的連接中處理SQL語句D.建立新數(shù)據(jù)庫連接

4.在編寫訪問數(shù)據(jù)庫的Java程序時,ResultSet對象的作用是(

A.建立新數(shù)據(jù)庫連接B.用來表示與數(shù)據(jù)庫的連接

C.在指定的連接中處理SQL語句D.存儲查詢結(jié)果

5.執(zhí)行查詢后產(chǎn)生的結(jié)果集對象,其游標初始化位于()。

A.結(jié)果集第一行B.結(jié)果集最后一行C.結(jié)果集第一行之前D.結(jié)果集最后一行之后

6.關(guān)于ResullSet?的next方法,敘述正確的是()。(多選)

A.如果當前不在最后一行,調(diào)用一次next方法,查詢結(jié)果的游標下移一行,且返回true

B.如果當前在最后一行,調(diào)用一次next方法,返回false

C.如果當前在最后一行,調(diào)用一次next方法,程序出現(xiàn)異常

D.調(diào)用next方法沒只會讓游標下移一行,沒有返回值

7.表中某字段類型是varchar,可以通過ResultSet對象的()方法獲得當前行這個字段的值。

A.getlntB.getCharC.getVarcharD.getString

8.執(zhí)行SQL語句selectid,name,agefromtb_student之后,結(jié)果集對象為rs,使用哪兩句語句可以取

得age字段的值?()()

A.rs.getlnt(3)B.rs.getlnt(2)C.r$.getlnt("age")D.rs.getlnt(age)

9.預(yù)處理一條SQL語句"insertintotb_student(name,age)values(?,?)”,得到pStmt對象,要把第一

個占位符的值設(shè)置為“zs”,第二個占位符的值設(shè)置為18,使用下面哪組語句?()

A.pStmt.setString(0,ffzs*);pStmt.setlnt(1,18);

B.pStmt.setlnt(l,*zs*):pStmt.setlnt(2,18):

C.pStmt.setString(1,*zs*);pStmt.setlnt(2,18);

D.pStmt.setString(*name*,*zs*);pStmt.setlnt(*age*,18);

10.executeUpdaieO方法返回int值,其含義是()。

A.受影響的記錄的條數(shù)B.0代表成功,1代表失敗

C.數(shù)據(jù)表的總記錄數(shù)D.0代表成功,非。代表失敗

二、程序填空(30分)

1.本機MySQL服務(wù)的端口號為3306,用戶名sa,密碼123。數(shù)據(jù)庫名為studb,數(shù)據(jù)表tbaccount包含

兩個字段uscjnamc和password,分別代碼用戶名和密碼,其中用戶名為主鍵,示例結(jié)構(gòu)和數(shù)據(jù)如下。請

補充login方法,該方法用于驗證用戶名、密碼是否正確,正確返回true,否則返回false。

user_namepassword

wy123

xxqadmin

publicbooleanlogin(StringuserName,Stringpassword)throwsException{

StringdbDriver="com.mysql.jdbc.Driver”;

Stringurl=*jdbc:mysq1://1oca1host:3306/

Class.forName(dbDriver);

Connectionconn=DriverManager.getConnection(,"","");

PreparedStatementpStmt=conn.Pi-eparedStatement(

“select*fromtb_accountwhereuser_name=?andpassword=?*);

pStmt.setString(___________,__________________);

pStmt.setString(,);

ResultSetrs=pStmt.executeQuery();

if(){

return;

)

return____________;

}

2.數(shù)據(jù)表同上題,請編寫方法通過用尸名查詢密碼,返回密碼,查不到返回null,補充下面方法。

publicStringgetPasswordByUserName(StringuserName)throwsException{

Connectionconn=數(shù)據(jù)庠連接省'略;

3.數(shù)據(jù)表同上題,該方法根據(jù)用戶名刪除記錄,刪除成功返回true,沒有符合條件的記錄返回false,補

充方法。

publicbooleandeleteAccount(StringuserName)throwsException{

Connectionconn=數(shù)據(jù)庫連接省略:

PreparedStatementpStmt=conn.PreparedStatement(

”*);

pStmt.(,);

intresult=pStmt.();〃執(zhí)行刪除,返回受影響的記錄的條數(shù)

return_________________________________

)

練習4:JSP入門

學號:姓名:班級:成績:_______

一、選擇(每空1分,共12分)

1.下面關(guān)于JSP和Servlet的優(yōu)缺點,說法錯誤的是()

A.Servlet長處在于處理“邏輯”,而不是處理“表現(xiàn)”

B.使用Servlet可以實現(xiàn)非常復(fù)雜的Web應(yīng)用邏輯,但是無法向客戶端提供頁面

C.Servlet可以生成頁面,但是HTML語句都寫在了輸出語句中,不適合向客戶端提供復(fù)雜的頁面效果

D、從形式上看JSP更接近HTML頁面,因此它比Servlet更適合表達網(wǎng)頁的外觀。

2.下面關(guān)于JSP執(zhí)行過程,說法正確的是()(多選)

A.客戶第一次請求JSP頁面時,JSP弓擎會將JSP頁面轉(zhuǎn)譯成java代碼(Servlet源文件)。

B.客戶每次請求JSP頁面時,JSP引擎都會將JSP頁面轉(zhuǎn)譯成Servlet源文件。

C.如果JSP文件未發(fā)生變化,再次訪問它時,發(fā)現(xiàn)其對應(yīng)的servlet類文件已經(jīng)存在,則直接調(diào)用

servlet的服務(wù)方法,不會重新進行轉(zhuǎn)譯和編譯。

D.只要將JSP文件轉(zhuǎn)譯成Servlet源文件,并進行編譯之后,不論以后何時訪問,JSP文件是否有變化,

都不會再次進行轉(zhuǎn)譯。

3.一個JSP文件需要引入java,io包和java.uli1.Dale類,以下哪些選項的語法是正確的?()

A.<%@pageimport=*java.io.*,javautil.Date*%>

B.importjava.io.?;importjava.util.Date;

C.<%@pageimport=*java.io.*;java.util.Date*%>

D.<%?pageimport=*java.io.*“import="java.util.Date"%>

4.關(guān)于page指令中contcntTypc屬性和pagcEncoding屬性的說法正確的是?:)(多選)

A.沒有區(qū)別

B.前者用于設(shè)置JSP頁面響應(yīng)結(jié)果的MINE類型和編碼方式,后者用于設(shè)置JSP頁面的編碼方式

C.設(shè)置pageEncoding屬性,就相當調(diào)用request.setCharacterEncoding方法設(shè)置請求編碼

D.設(shè)置contentType屬性,就相當于使用的response.setContentType方法

5.如果要在JSP文件中注釋N行Java代碼最好使用(),如果要注釋N行HTML代碼最好使用(),

如果要注釋的代碼既包含HTML也包含Java代碼,使用()

A.<?——>B.<%—―%>C./**/D.//

6.在JSP文件中有這樣的注釋語句<!—鬻=(int)(Vath,random。*10)%>—>,說法正確的是()

A.代碼不會被執(zhí)行

B.代碼還是會執(zhí)行,但客戶在頁面上看不到執(zhí)行結(jié)果

C.代碼還是會執(zhí)行,客戶在頁面上能看到執(zhí)行結(jié)果

D.代碼不會在服務(wù)器端執(zhí)行,會在發(fā)送到瀏覽器后執(zhí)行

7.在helloapp應(yīng)用中有頁面,路徑為:tomcat根目錄/webapps/helloapp/hello/hello.jsp,在瀏覽器

端訪問hello.jsp的地址是()

A.http://localhost:8080/webapps/helloapp/hello/hello.jsp

B.http://localhost:8080/helloapp/hello.jsp

C.http://localhost:8080/helloapp/hello/hello.jsp

D.http://localhost:8080/hello/hello.jsp

8.在helloapp應(yīng)用中有頁面,其在Eclipse工程中的路徑為helloapp/WebCcntent/pages/hello.jsp,

在瀏覽器端訪問hello.jsp的地址是()

A.http://localhost:8080/helloapp/WebContent/pages/hello.jsp

B.h11p://1oca1host:8080/he11oapp/pages/he11o.jsp

C.http://localhost:8080/WebContent/pages/hello.jsp

D.hitp://localhost:8080/pages/hello.jsp

9.關(guān)于靜態(tài)包含和動態(tài)包含,下面那些說法正確()(多選)

A.靜態(tài)包含先把目標組件的源代碼融合到源組件中,然后對融合后的源組件進行轉(zhuǎn)譯和編譯

B.動態(tài)包含先把目標組件的源代碼融合到源組件中,然后對融合后的源組件進行轉(zhuǎn)譯和編譯

C.動態(tài)包含會分別轉(zhuǎn)譯和編譯源組件和目標組件,目標組件的響應(yīng)結(jié)果被包含到源組件的響應(yīng)結(jié)果中

D.靜態(tài)包含發(fā)生在JSP的翻譯階段,動態(tài)包含則發(fā)生在運行階段

10.helloapp應(yīng)用中有a.jsp和b.jsp兩個文件,路徑分別為:helloapp/a.jsp,helloapp/dir/b.jsp,

以下哪些選項中的代碼能使a.jsp文件正確地動態(tài)包含b.jsp?()(選兩個)

A.<jsp:includepage=*b.jsp*/>B.<jsp:includepage=*/helloapp/dir/b.jsp*/>

C.<jsp:includepage=*/dir/b.jsp*/>D.<jsp:includepage=*dir/b.jsp*/>

二、判斷(每題1分,共8分)

1.JSP引擎在第一次處理JSP請求時,因為有轉(zhuǎn)譯和編譯的過程,用戶收到響應(yīng)的時間會有延遲。

2.JSP轉(zhuǎn)譯后的java和class文件可以刪掉,訪問頁面時,還會重新進行轉(zhuǎn)翻譯和編譯。

3.在tomcat根目錄/work文件夾中有轉(zhuǎn)譯生成的Servlet源文件和其編譯后的zlass文件。

4.靜態(tài)包含時兩個組件使用的是同?個request對象,動態(tài)包含時兩個組件使用的是不同的request對象。

5.靜態(tài)包含在兩個文件中不能定義同名的變量(非局部代碼塊中的變量),而動態(tài)包含允許。

6.JSP頁面中可以直接使用request和response對象,無需定義。

7.在JSP中使用<%out.print("<b>你好</b>");%>和<b>你好</b>,兩句效果是相同的。

8.使用<%out.print("hi");的效果和使用<%System.out.print("hi");給的效果是一樣的。

三、填空(每空1分,共4分)

1.helloapp應(yīng)用中有a.jsp和b.jsp兩個文件,路徑分別為:helloapp/dirl/a.jsp,

helloapp/dir1/dir2/b.jsp,a.jsp文件的一個超鏈接要正確的鏈接到b.jsp,請寫出兩種路徑:

<ahref=*")鏈接到b.jsp</a>

<ahref=*鏈接至b.jsp</a>

2.helloapp應(yīng)用中有a,jsp和b.jsp兩個文件,路徑分別為:helloapp/dirl/a.jsp,

helloapp/dir1/dir2/b.jsp,a.jsp文件要正確地包含b.jsp,請寫出兩種路徑:

<jsp:includepage="*>

<jsp:includepage=**>

四、程序(6分)

1.一個servlet在request對象中存儲了兩個屬性,一個名為"numl",另一個名為"num2”,屬性值均為

Integer類型,并將請求轉(zhuǎn)發(fā)給了index.jsp。index.jsp中將屬性值取出,求和,并向客戶端展示結(jié)果,

頁面展示的內(nèi)容為"numl的值+num2的值=結(jié)果”(例如3+19=22),請完成index,jsp的代碼。無需寫page

指令、html、head、body標簽,只需寫最核心的代碼,注意駕給的使用。

練習5:Servlet和JSP進階

學號:姓名:班級:成績:_______

一、選擇(每題2分,共20分)

1.URL重寫技術(shù)的缺點是(),優(yōu)點是((多選)

A.必須對所有動態(tài)生成的URL進行重寫,代碼比較繁瑣。B.不能用于HTML文檔。

C.既適用于JSP頁面也適用于HTML頁面。D.用戶是匿名的。

E.會話信息作為參數(shù)在URL上可見的,存在安全隱患。

2.下面關(guān)于cookie說法正確的是()(多選)

A.由服務(wù)器端程序創(chuàng)建,存儲在服務(wù)器上。B.由服務(wù)器端程序創(chuàng)建,存儲在客戶端計算機上。

C.持久維持會話信息,瀏覽器關(guān)閉也可以維護D.所有瀏覽器都支持,但用戶可以選擇禁用

3.客戶端首次訪問某網(wǎng)站時,請求中—攜帶該網(wǎng)站的cookie,服務(wù)器收到請求后,可以將cookie隨著

—發(fā)送到客戶端保存起來。當用戶再次訪問同一網(wǎng)站時,請求中攜帶該網(wǎng)站的cookie.,()

A.會,響應(yīng),不會B.不會,請求,不會C.不會,響應(yīng),會D.會,響應(yīng),會

4.關(guān)于cookie有效期,下面說法正確的是()(多選)

A.cookie的默認生存期為T,表示cookie永不失效

B.cookie的默認生存期為7,表示瀏覽器關(guān)閉后cookie就失效

C.使用setMaxAge方法將生存期設(shè)置為正數(shù),只要在生存期內(nèi),就算瀏覽器被關(guān)閉,cookie依然存在

D.使用setMaxAge方法將生存期設(shè)置為正數(shù),如果瀏覽器不關(guān)閉,只要在生存期內(nèi),cookie都會存在,

但是只要瀏覽器關(guān)閉,cookie就失效了

5.cookie.setMaxAge(60)的含義是()

A.將cookie的生存期設(shè)置為1分鐘,過期后服務(wù)器不會再向瀏覽器發(fā)送cookie

B.將cookie的生存期設(shè)置為1分鐘,過期后瀏覽器不會把這個cookie發(fā)送給服務(wù)器

C.將cookie的生存期設(shè)置為1個小時,過期后瀏覽器不會把這個cookie發(fā)送給服務(wù)器

D.將cookie的生存期設(shè)置為1個小時,過期后服務(wù)器不會再向瀏覽器發(fā)送cookie

6.關(guān)于session,以下哪些說法正確()(多選)

A.對于發(fā)往服務(wù)器的每個HTTP請求,Servlet容器都會創(chuàng)建一個HttpSession對象

B.Servlet容器為每一個會話分配一個HTTPSession對象,并為每個HttpSession對象分配唯一的

SessionlD

C.Servlet容器為每一個會話分配一個HTTPSession對象,JavaWeb應(yīng)用程序負責為HttpSession分配惟

一的SessionlD

D.Servlet容器為每一個會話分配個HTTPSession對象,而SessionlD是由客戶端瀏覽器創(chuàng)建,并隨

著cookie發(fā)送給服務(wù)器。

7.關(guān)于session,以下哪些說法正確()(多選)

A.Servlet容器會把sessionlD作為Cookie發(fā)送到客戶端來跟蹤會話

B.JavaWeb應(yīng)用程序無法獲取HttpSession對象的SessionlD

C.如果客戶端瀏覽器的cookie丟失,再次訪問同一服務(wù)器時,服務(wù)器會認為這是一次新會話,并新建

HttpSession對象,分配新的SessionlD

D.每個HttpSession對象都與唯一的一個HttpServletRequest對象關(guān)聯(lián)

8.下面關(guān)于session的失效/過期時間的說法,正確的是()

A.session的失效時間是30分鐘,不可以修改

B.使用session.selMaxInactivelnierval0可以設(shè)置session的失效時間,參數(shù)的單位是分鐘。如果

設(shè)置為負數(shù),表示永不失效。

C.如果失效時間被設(shè)置為10分鐘,表示從一個客戶端首次訪問服務(wù)端開始計時,10分鐘后該客戶端和服

務(wù)器的會話就會結(jié)束,和該會話相關(guān)的session對象將會被銷毀。

D.如果失效時間被設(shè)置為10分鐘,表示一個客戶端連續(xù)10分鐘沒有訪問過應(yīng)用內(nèi)的任意組件,該客戶

端和服務(wù)器的會話結(jié)束,和該會話相關(guān)的session對象將會被銷毀。

E.如果失效時間被設(shè)置為10分鐘,表示從一個客戶端首次訪問服務(wù)端開始計時,10分鐘后該客戶端瀏覽

器上保存的與這個session相關(guān)的cookie將被銷毀。

9.在一個JSP文件中包含如下代碼,當瀏覽器訪問這個JSP文件的時候,會出現(xiàn)什么情況?()

<%session.setAitribute("userName","Tom");

session.removeAttribute(*userName*);%>

<%=(String)session.getAttribute(*userName*)%>

A.JSP文件正常執(zhí)行,輸出TomB.服務(wù)器端向客戶端返回編譯錯誤

C.JSP文件正常執(zhí)行,輸出nullD.執(zhí)行時產(chǎn)生java.lang.NulIPointerException異常

10.下面關(guān)于request對象說法正確的是?()(多選)

A.同?個客戶端向服務(wù)器發(fā)出的所有請求共用同一個request對象。

B.同一個客戶端多次請求同一個服務(wù)端組件,這些請求共用同一個request對象。

C.request的生存期是,從用戶的一次請求到向用戶返回響應(yīng)之間的服務(wù)器處理期間,生存期內(nèi)可能跨

越多個組件。

D.forward/include中的源組件和目標組件共用同一個request對象,重定位中的源組件和目標組件

的request對象是不同的。

二、填空(每空1分,共10分)

1.JSP內(nèi)置對象中的session,它的類型是,application的類型是

2.JSP有四個隱含對象可以用來存取屬性,按照它們的生命周期的長度或者作用范圍的廣度來說,從小到

大的排列是、、、

3.維護會話可以采用三種技術(shù)手段,分別是__________,_________________

4.pageContext.findAttribute("屬性名")的含義是

三、簡答(每題10分,共30分)

1.請簡述request、session、application對象的生命周期。

2.請解釋為什么瀏覽器關(guān)閉(cookie失效)會導致session對象重建(會話結(jié)束工

3.假設(shè)用戶已經(jīng)N秒鐘沒有訪問過web應(yīng)用的任意組件N大于session的有效期),現(xiàn)在用戶又向web應(yīng)

用發(fā)起了請求,請簡述服務(wù)器檢查和重建session對象的過程。

第1章JavaWeb應(yīng)用開發(fā)基礎(chǔ)

一、選擇題

1.CDE

2.AC

3.ACFG

4.A

5.AB

6.AB

7.ABCD

8.B

9,BCDG

二、簡答題

1.

1)首先客戶機與服務(wù)器需要建立連接。只要在客戶機上單擊某個超級鏈接,HTTP的工

作就開始了。

2)建立連接后,客戶機發(fā)送一個請求給服務(wù)器,請求方式的格式為:統(tǒng)一資源標識符

(URL)、協(xié)議版本號,后邊是MIME信息包括請求修飾符、客戶機信息和可能的內(nèi)容。

3)服務(wù)器接到請求后,給予相應(yīng)的響應(yīng)信息,其格式為一個狀態(tài)行,包括信息的協(xié)議版

本號、一個成功或錯誤的代碼,后邊是MIME信息包括服務(wù)器信息、實體信息和可能的內(nèi)

容。

4)客戶端接收服務(wù)器所返回的信息通過瀏覽器顯示在用戶的顯示屏上,客戶機與服務(wù)

器斷開連接。

2.本(題略)

3.

<%@pagecontentType="text/html;charset=gb2312"%>

<html>

<head>

<title>

第一個JSP程序

</title>

</head>

<body>

<h2align="center">

<%=newjava.util.Date()%>

</h2>

</body>

</html>

第2章E-Store電子商城項目概述

一、選擇題

1.BD

2.CD

3.AC

4.BCD

5.C

6.BD

7.ACD

8.ABD

9.C

10.C

11.C

二、簡答題

1.

JSP頁面的JSP元素主要有:指令(Directives)、注釋(comment)、腳本(Scriptlet)、

動作(Actions)和內(nèi)置對象0

2.

request:request是HttpSeMetRequest類的對象。該對象封裝了用戶提交的信息,通

過調(diào)用該對象相應(yīng)的方法可以獲得用戶通過瀏覽器提交的請求以及相關(guān)cookie,header,

session等信息。

response:response是HttpServletResponse類的對象,表示了對客戶的請求返回的動

態(tài)響應(yīng)。Response對象提供了用于設(shè)置送回瀏覽器的響應(yīng)的方法(如cookies、header信

息等)O

out:out對象是javax.jsp.JspWHter的一個實例,提供了將response對象向瀏覽器輸出

結(jié)果的方法。

pageContext:pageContext表示一個javax.servlet.jsp.PageContext對象。它是用于方便

存取各種范圍的名字空間、servlet相關(guān)的對象的API,并且包裝了通用的servlet相關(guān)功能的

方法。

session:session表示一個請求的javax.servlet.http.HttpSession先■象。session對象在某

個客戶(瀏覽器)對網(wǎng)站的第一個JSP頁面訪問時自動創(chuàng)建,并可以存貯用戶的狀態(tài)信息,

一個session對象存儲一個用戶的會話信息,完成對該用戶的會話管理。從一個客戶打開瀏

覽器并連接到服務(wù)器開始,到客戶關(guān)閉瀏覽器離開這個服務(wù)器結(jié)束,被稱為一個會話。當一

個客戶訪問一個服務(wù)器時,可能會在這個服務(wù)器的幾個頁面之間反復(fù)連接,反復(fù)刷新一個頁

面,服務(wù)器應(yīng)當通過某種辦法知道這是同一個客戶,這就需要用到session對象。

application:application對象是javax.servle.ServletContext類的實例對象。當web服務(wù)

器啟動后,對應(yīng)與部署在這個服務(wù)器上的每一個Web應(yīng)用都會產(chǎn)生一個application對象,

當客戶在所訪問的某個網(wǎng)站的各個頁面之間瀏覽時,這個application對象都是同一個,直

到服務(wù)器關(guān)閉。與session不同的是,對于同一個web應(yīng)用來說,所有客戶的application

對象都是同一個,即所有客戶共享這個內(nèi)置的application對象。

page:page對象表示該JSP頁面本身

第3章前臺商品展示模塊

一、選擇題

1.ACE

2.BC

3.B

4.BC

5.B

6.BC

7.CD

8.D

9.ABC

二、簡答題

1.

1)在頁面中引入數(shù)據(jù)庫包java.sql并聲明數(shù)據(jù)庫操作對象

<%@pageimport="java.sql.*"H>

<%

Connectionconnection=null;〃聲明連接對象

Statementst=null;〃聲明數(shù)據(jù)庫操作的語句對象

ResultSetrs=null;//聲明數(shù)據(jù)庫查詢結(jié)果集對象

%>

2)加載數(shù)據(jù)庫驅(qū)動

<%

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newlnstance();

%>

3)創(chuàng)建數(shù)據(jù)庫連接

這需要創(chuàng)建Connection(java.sql包)類的一個實例,并使用DriverManager(java.sql包)的

方法getConnection來嘗試建立用url指定的數(shù)據(jù)庫的連接。

<%

connection=

DriverManager.getConnection(

"jdbc:sqlserver://localhost:1433;DatabaseName=shopping",

"sa"t"123456");//加載數(shù)據(jù)庫連接

%>

1.include指令

在JSP頁面中使用<%@include%>指令時,將會在JSP編譯時在該指令出現(xiàn)的地方插入一

個包含文本或代碼的文件,這個包含的過程是岸態(tài)的。靜態(tài)的包含是指在編譯時就能確定包

含文件的內(nèi)容,直接被插入到JSP文件中去,形成一個JSP文件,包含的文件可以是HTML文

件、文本文件或JSP文件等。

(1)如果某個包含文件被改變,包含此文件的JSP文件也需要重新編譯,否則不能反

映包含文件的修改效果。

(2)file="relativeURL”這個包含文件的路徑名一般來說是指相對路徑,必須在編譯的時

候就能確定,而不能使用變量代替。

(3)不可以在file所指定的文件后接任何參數(shù),如:<%@includefile=

"l5igin.jsp?nai【ie二%》是不允許的。

2.vjsp:include〉允許包含動態(tài)文件和靜態(tài)文件,這兩種包含文件的結(jié)果是不同的。

如果文件是靜態(tài)文件,那么這種包含僅僅是把包含文件的內(nèi)容加到JSP文件中。與include

指令包含靜態(tài)文件的效果是一樣的。

如果文件是動態(tài)文件,那么這個包含文件會被JSP引擎單獨編譯執(zhí)行,由<jsp:include〉

動作請求執(zhí)行,并將傳送回來一人響應(yīng)輸出到<jsp:include〉動作所在的位置,當這個包含

文件執(zhí)行完畢后,JSP引擎繼續(xù)執(zhí)行JSP文件余下的部分。

如果<jsp:include〉動作包含的文件是動態(tài)文件,還可以用<jsp:piram>子句傳遞參數(shù)名

和參數(shù)值°并可以在一個vjsp:include〉動作中多次使用vjsp:param>子句,傳遞多個參數(shù)給

動態(tài)文件。

3.

1)request對象

request對象是JSP九種內(nèi)置對象中最重要的對象,是javax.servlet.http.

IIttpServletRequest和javax.servlet.ServletRequest類的子類的對象。該對象封裝了用戶提交

的信息,通過調(diào)用該對象相應(yīng)的方法可以獲取封裝的信息和用戶提交信息。

request對象包含了有關(guān)瀏覽器請求的信息,并且提供了多個用于獲取與用戶請求有關(guān)

數(shù)據(jù)的有用的方法。實際web應(yīng)用中常用的是通過request對象的getPwramete「方法可以得到

用戶提交的請求參數(shù)。所有來自客戶端的請求有關(guān)數(shù)據(jù)經(jīng)Web服務(wù)器處理后,由request對

象進行封裝,傳遞給JSP頁面。

2)response對象

response對象包含了服務(wù)器對客戶的請求做出動態(tài)的響應(yīng),向客戶端發(fā)送數(shù)據(jù)。JSP頁

面執(zhí)行完成后,JSP引擎將頁面產(chǎn)生的響應(yīng)封裝成response對象,然后發(fā)送到客戶端以形成

對客戶請求的響應(yīng)。和request一樣,response對象也由JSP引擎(容器)產(chǎn)生,可以使用

response對象提高的方法對響應(yīng)進行操作。

4.

根據(jù)HTTP規(guī)范,GET一般用于獲取/查詢資源信息,而POST可能修改服務(wù)器上的資源。

在形式上,GET請求的數(shù)據(jù)會附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中),以?

分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,如:

login.jsp?name=admin&password=123456&verify=%E4%BD%AO%E5%A5%BD0POST把提交的

數(shù)據(jù)則放置在是HTTP包的BODY中,不會像GET方法一樣附在URL之后。

GET方法和POST方法在提交信息的長度上有所不同,GET方法是將請求參數(shù)加在URL

之后,因而信息長度受到URL長度的限制,這個限制是特定的瀏覽器及服務(wù)器對它的限制。

IE對URL長度的限制是2083字節(jié)(2K+35)。對于其他瀏覽器,如Navigator、FireFox等,理

論上沒有長度限制,其限制取決于操作系統(tǒng)的支持。而理論上講,POST是沒有大小限制的,

HTTP協(xié)議規(guī)范也沒有進行大小限制,起限制作用的是服務(wù)器的處理程序的處理能力。實際

使用的時候,通常將POST作為復(fù)雜和安全的數(shù)據(jù)傳遞方法,因為請求的信息是放在BODY

中,所以安全、而且豐富。

第4章前臺用戶模塊

一、選擇題

1.C

2.ABD

3.ACD

4.D

5.BC

6.C

7.ABD

二、簡答題

1.

application:全局作用范圍,整個應(yīng)用程序共享,就是在部署文件中的同一個webApp

共享,生命周期為:應(yīng)用程序啟動到停止。

session:會話作用域,當用戶首次訪問時,產(chǎn)生一個新的會話,以后服務(wù)器就可以記

住這個會話狀態(tài)。生命周期:會話超時,或者服務(wù)器端強制使會話失效。

request:請求作用域,就是客戶端的一次請求。

page:一個JSP頁面。

2.

(1)bean類必須有一個零參數(shù)(默認)構(gòu)造函數(shù)??諛?gòu)造函數(shù)在JSP元素創(chuàng)建bean

時被調(diào)用。可以顯式地定義一個零參數(shù)構(gòu)造函數(shù),也可省略所有的構(gòu)造函數(shù),這樣系統(tǒng)會自

動創(chuàng)建一個空構(gòu)造函數(shù)。

(2)依照JavaBean規(guī)范,在JavaBean類中,為了令外界可訪問字段xxx,而且不破壞

封裝的要求,不應(yīng)當將其定義成public可見域,而是應(yīng)當為其定義getXxx和setXxx方法,

作為對應(yīng)字段的存取方法。對于布爾字段而言,通常使用isXxx方法來查詢字段值。這種

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論