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

下載本文檔

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

文檔簡介

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

學(xué)號(hào)姓名:班級(jí):成績:

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

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

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

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

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

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

B.就是不允許包含聲音、動(dòng)畫等的HTML文檔

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

D.不允許修改的HTML文檔

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

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

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

E.沒有安裝EclipseF.有進(jìn)程占用了Tomcat的端口

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

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.一個(gè)URL:http://o-w.runoob.com/http/http-methods.html,它的

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

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

資源路徑是__

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

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

該文件夾下的批處理文件可以用于啟動(dòng)tomcato

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

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

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

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

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

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

8.假設(shè)一個(gè)web應(yīng)用為helloapp,應(yīng)用中有一個(gè)頁面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>的______屬性用來指定請(qǐng)求提交方法,屬性值為時(shí)請(qǐng)求以GET方式提交,屬

性值為時(shí)請(qǐng)求以POST方式提交。屬性用于指定表單提交地址。

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

并攜帶兩個(gè)請(qǐng)求參數(shù),參數(shù)page的值為1,參數(shù)keywords的值為web,請(qǐng)補(bǔ)全超鏈接:

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

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

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

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

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

*梨servletApp

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

>幼DeploymentDescriptor

>&JAX-WSWebServices交到check.jsp,請(qǐng)補(bǔ)全下劃線。

▼AJavaResources<form___________________________________________>

>Qsrc

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

>aLibraries

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

>abuild</form>

veWebContent

>eimg

2)如果用戶輸入的工作是"醫(yī)生",年限是"3”,請(qǐng)寫出請(qǐng)求參數(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,請(qǐng)寫出訪問地址。

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

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

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

web.xml部署后的路徑:

練習(xí)2:Servlet基礎(chǔ)

學(xué)號(hào):姓名:班級(jí):成績:_______

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

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

應(yīng)填?()

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

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

2.當(dāng)客戶請(qǐng)求到達(dá)Servlet容器時(shí),容器將請(qǐng)求包裝成①―對(duì)象,將其傳遞給__②.方法,從請(qǐng)求對(duì)象

中獲得用戶請(qǐng)求信息,進(jìn)行處理后,把響應(yīng)信息包裝在一③—對(duì)象中,通過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.通過()對(duì)象的gelInitParameter方法取得servlet初始化參數(shù),通過()對(duì)象的getlnitParameter

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

A.ServletRequestB.ServletContextC.ServletConfigD.ServletResponse

5.helloapp應(yīng)用中有一個(gè)HelloServlct類,它位于org.javathinker包下。這個(gè)應(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對(duì)象的說法正確的是?()

A.對(duì)于每個(gè)HTTP請(qǐng)求,Servlet容器都會(huì)創(chuàng)建一個(gè)ServletContext對(duì)象

B.由JavaWeb應(yīng)用本身負(fù)責(zé)為自己創(chuàng)建一個(gè)ServletContext對(duì)象

C.每個(gè)JavaWeb應(yīng)用啟動(dòng)時(shí),Servlet容器都會(huì)為其創(chuàng)建一個(gè)ServletContext對(duì)象

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

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

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

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

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

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

3.假設(shè)有一個(gè)Student類型的對(duì)象s,通過request.setAttribute("stu”,s)語句存儲(chǔ)到了當(dāng)前的請(qǐng)求

對(duì)象中,通過下面的語句可以將存儲(chǔ)的Student對(duì)象取出。請(qǐng)補(bǔ)全:

stu=;

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

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

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

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

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

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

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

四、程序(20分)

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

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

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

<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處理,

補(bǔ)全下劃線。

<form>

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

</form>

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

publicclassHeiloServletextendsHttpServlet{

publicvoid(HttpServletRequestrequest,HttpServletResponseresponse){

})

練習(xí)3:JDBC

學(xué)號(hào):姓名:班級(jí):成績:_______

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

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

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

2.使用JDBC要導(dǎo)入哪個(gè)包?()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

A.getlntB.getCharC.getVarcharD.getString

8.執(zhí)行SQL語句selectid,name,agefromtb_student之后,結(jié)果集對(duì)象為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對(duì)象,要把第一

個(gè)占位符的值設(shè)置為“zs”,第二個(gè)占位符的值設(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.本機(jī)MySQL服務(wù)的端口號(hào)為3306,用戶名sa,密碼123。數(shù)據(jù)庫名為studb,數(shù)據(jù)表tbaccount包含

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

補(bǔ)充login方法,該方法用于驗(yàn)證用戶名、密碼是否正確,正確返回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ù)表同上題,請(qǐng)編寫方法通過用尸名查詢密碼,返回密碼,查不到返回null,補(bǔ)充下面方法。

publicStringgetPasswordByUserName(StringuserName)throwsException{

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

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

充方法。

publicbooleandeleteAccount(StringuserName)throwsException{

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

PreparedStatementpStmt=conn.PreparedStatement(

”*);

pStmt.(,);

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

return_________________________________

)

練習(xí)4:JSP入門

學(xué)號(hào):姓名:班級(jí):成績:_______

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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屬性,就相當(dāng)調(diào)用request.setCharacterEncoding方法設(shè)置請(qǐng)求編碼

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

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

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

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

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

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

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

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

D.代碼不會(huì)在服務(wù)器端執(zhí)行,會(huì)在發(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)包含和動(dòng)態(tài)包含,下面那些說法正確()(多選)

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

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

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

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

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

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

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請(qǐng)求時(shí),因?yàn)橛修D(zhuǎn)譯和編譯的過程,用戶收到響應(yīng)的時(shí)間會(huì)有延遲。

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

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

4.靜態(tài)包含時(shí)兩個(gè)組件使用的是同?個(gè)request對(duì)象,動(dòng)態(tài)包含時(shí)兩個(gè)組件使用的是不同的request對(duì)象。

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

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

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兩個(gè)文件,路徑分別為:helloapp/dirl/a.jsp,

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

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

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

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

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

<jsp:includepage="*>

<jsp:includepage=**>

四、程序(6分)

1.一個(gè)servlet在request對(duì)象中存儲(chǔ)了兩個(gè)屬性,一個(gè)名為"numl",另一個(gè)名為"num2”,屬性值均為

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

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

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

練習(xí)5:Servlet和JSP進(jìn)階

學(xué)號(hào):姓名:班級(jí):成績:_______

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

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

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

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

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

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

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

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

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

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

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

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

A.cookie的默認(rèn)生存期為T,表示cookie永不失效

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

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

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

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

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

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

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

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

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

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

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

B.Servlet容器為每一個(gè)會(huì)話分配一個(gè)HTTPSession對(duì)象,并為每個(gè)HttpSession對(duì)象分配唯一的

SessionlD

C.Servlet容器為每一個(gè)會(huì)話分配一個(gè)HTTPSession對(duì)象,JavaWeb應(yīng)用程序負(fù)責(zé)為HttpSession分配惟

一的SessionlD

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

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

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

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

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

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

HttpSession對(duì)象,分配新的SessionlD

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

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

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

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

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

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

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

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

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

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

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

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

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

session.removeAttribute(*userName*);%>

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

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

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

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

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

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

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

越多個(gè)組件。

D.forward/include中的源組件和目標(biāo)組件共用同一個(gè)request對(duì)象,重定位中的源組件和目標(biāo)組件

的request對(duì)象是不同的。

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

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

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

大的排列是、、、

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

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

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

1.請(qǐng)簡述request、session、application對(duì)象的生命周期。

2.請(qǐng)解釋為什么瀏覽器關(guān)閉(cookie失效)會(huì)導(dǎo)致session對(duì)象重建(會(huì)話結(jié)束工

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

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

第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)首先客戶機(jī)與服務(wù)器需要建立連接。只要在客戶機(jī)上單擊某個(gè)超級(jí)鏈接,HTTP的工

作就開始了。

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

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

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

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

容。

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

器斷開連接。

2.本(題略)

3.

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

<html>

<head>

<title>

第一個(gè)JSP程序

</title>

</head>

<body>

<h2align="center">

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

</h2>

</body>

</html>

第2章E-Store電子商城項(xiàng)目概述

一、選擇題

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)、

動(dòng)作(Actions)和內(nèi)置對(duì)象0

2.

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

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

session等信息。

response:response是HttpServletResponse類的對(duì)象,表示了對(duì)客戶的請(qǐng)求返回的動(dòng)

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

息等)O

out:out對(duì)象是javax.jsp.JspWHter的一個(gè)實(shí)例,提供了將response對(duì)象向?yàn)g覽器輸出

結(jié)果的方法。

pageContext:pageContext表示一個(gè)javax.servlet.jsp.PageContext對(duì)象。它是用于方便

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

方法。

session:session表示一個(gè)請(qǐng)求的javax.servlet.http.HttpSession先■象。session對(duì)象在某

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

一個(gè)session對(duì)象存儲(chǔ)一個(gè)用戶的會(huì)話信息,完成對(duì)該用戶的會(huì)話管理。從一個(gè)客戶打開瀏

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

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

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

application:application對(duì)象是javax.servle.ServletContext類的實(shí)例對(duì)象。當(dāng)web服務(wù)

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

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

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

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

page:page對(duì)象表示該JSP頁面本身

第3章前臺(tái)商品展示模塊

一、選擇題

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ù)庫操作對(duì)象

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

<%

Connectionconnection=null;〃聲明連接對(duì)象

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

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

%>

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

<%

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

%>

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

這需要?jiǎng)?chuàng)建Connection(java.sql包)類的一個(gè)實(shí)例,并使用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%>指令時(shí),將會(huì)在JSP編譯時(shí)在該指令出現(xiàn)的地方插入一

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

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

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

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

映包含文件的修改效果。

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

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

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

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

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

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

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

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

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

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

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

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

動(dòng)態(tài)文件。

3.

1)request對(duì)象

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

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

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

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

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

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

象進(jìn)行封裝,傳遞給JSP頁面。

2)response對(duì)象

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

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

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

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

4.

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

在形式上,GET請(qǐng)求的數(shù)據(jù)會(huì)附在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中,不會(huì)像GET方法一樣附在URL之后。

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

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

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

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

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

使用的時(shí)候,通常將POST作為復(fù)雜和安全的數(shù)據(jù)傳遞方法,因?yàn)檎?qǐng)求的信息是放在BODY

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

第4章前臺(tái)用戶模塊

一、選擇題

1.C

2.ABD

3.ACD

4.D

5.BC

6.C

7.ABD

二、簡答題

1.

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

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

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

住這個(gè)會(huì)話狀態(tài)。生命周期:會(huì)話超時(shí),或者服務(wù)器端強(qiáng)制使會(huì)話失效。

request:請(qǐng)求作用域,就是客戶端的一次請(qǐng)求。

page:一個(gè)JSP頁面。

2.

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論