《JavaWeb編程技術(shù)》課件課后習(xí)題及答案_第1頁
《JavaWeb編程技術(shù)》課件課后習(xí)題及答案_第2頁
《JavaWeb編程技術(shù)》課件課后習(xí)題及答案_第3頁
《JavaWeb編程技術(shù)》課件課后習(xí)題及答案_第4頁
《JavaWeb編程技術(shù)》課件課后習(xí)題及答案_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1Web技術(shù)概述填空題Web的表現(xiàn)形式包括超文本和超媒體。Web的核心體系結(jié)構(gòu)包括HTML、URI、HTTP。Web的發(fā)展歷經(jīng)三個(gè)階段,它們分別是Web1.0、Web2.0、Web3.0。在Web程序結(jié)構(gòu)中,客戶端與Web服務(wù)器采用請(qǐng)求/響應(yīng)模式進(jìn)行交互。常用于Web客戶端頁面編寫的技術(shù)包括通過標(biāo)記符號(hào)來標(biāo)記要顯示的網(wǎng)頁中的各個(gè)部分的HTML,對(duì)網(wǎng)頁各元素進(jìn)行樣式化的CSS,以及為網(wǎng)頁增加動(dòng)態(tài)功能的腳本語言JavaScript。簡答題網(wǎng)絡(luò)程序體系結(jié)構(gòu)有哪兩種?它們有何區(qū)別和聯(lián)系?答:網(wǎng)絡(luò)程序體系結(jié)構(gòu)有C/S(客戶機(jī)/服務(wù)器)和B/S(瀏覽器/服務(wù)器)兩種。二者的聯(lián)系是:B/S結(jié)構(gòu)是一種特殊的C/S結(jié)構(gòu)。二者的區(qū)別如表所示:C/S體系結(jié)構(gòu)B/S體系結(jié)構(gòu)硬件環(huán)境建立在局域網(wǎng)上,局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù),對(duì)客戶端主機(jī)配置要求較高建立在廣域網(wǎng)上,對(duì)服務(wù)器端主機(jī)配置要求較高軟件環(huán)境客戶端必須安裝專用軟件,要求所有客戶端和服務(wù)器端使用相同的操作系統(tǒng)客戶端必須安裝瀏覽器,但對(duì)操作系統(tǒng)和瀏覽器無類型和版本限制安全性面向相對(duì)固定的用戶群,對(duì)信息安全的控制能力很強(qiáng),安全性高面向不可知的用戶,對(duì)信息安全的控制能力相對(duì)弱,安全性低用戶接口不同的操作系統(tǒng)平臺(tái)采用不同的接口,因此需要根據(jù)不同的操作系統(tǒng)編寫不同的客戶端軟件,對(duì)程序員普遍要求較高客戶端功能實(shí)現(xiàn)建立在瀏覽器上,與客戶端操作系統(tǒng)無關(guān),因此接口統(tǒng)一,對(duì)程序員要求較低軟件重用需要將客戶端和服務(wù)器視為整體進(jìn)行考慮,構(gòu)件的重用性相對(duì)較低大多數(shù)構(gòu)件具有相對(duì)獨(dú)立的功能,從而能夠相對(duì)較好的重用負(fù)載分布事務(wù)處理邏輯分布在客戶端和服務(wù)器上,客戶端負(fù)責(zé)和用戶的交互,收集用戶信息,以及通過網(wǎng)絡(luò)向服務(wù)器發(fā)出請(qǐng)求,負(fù)載較大把事務(wù)處理邏輯部分交給了服務(wù)器,導(dǎo)致服務(wù)器負(fù)載較大,客戶端只是負(fù)責(zé)顯示,負(fù)載較小系統(tǒng)維護(hù)客戶端與服務(wù)器為一個(gè)整體,維護(hù)時(shí)需全局考慮,軟件安裝、調(diào)試和升級(jí)都需在所有客戶端及服務(wù)器上進(jìn)行,開銷較大構(gòu)件組成,更換方便,只需要對(duì)服務(wù)器上的軟件版本進(jìn)行升級(jí)維護(hù),開銷較小使用JSP編寫的程序與使用HTML編寫的程序有什么區(qū)別?答:使用JSP編寫的程序與使用HTML編寫的程序區(qū)別在于:HTML頁面是靜態(tài)頁面,頁面展現(xiàn)的信息都是事先由用戶寫好放在服務(wù)器上,由Web服務(wù)器向客戶端發(fā)送,無論何時(shí)何地執(zhí)行,同一個(gè)頁面的執(zhí)行結(jié)果總是相同的。而JSP頁面則是在服務(wù)器上執(zhí)行該頁面的Java代碼和JSP標(biāo)記部分,然后將實(shí)時(shí)生成的HTML頁面向客戶端發(fā)送,因此,在不同時(shí)間或不同地點(diǎn)執(zhí)行同一個(gè)頁面的結(jié)果可能不相同,從而體現(xiàn)出動(dòng)態(tài)頁面的效果。請(qǐng)闡述JSP的工作流程。答:當(dāng)客戶端通過瀏覽器向服務(wù)器端發(fā)出URL請(qǐng)求后,JSP服務(wù)器將根據(jù)接收到的請(qǐng)求檢查對(duì)應(yīng)的JSP頁面,如果是第一次請(qǐng)求該頁,或該頁雖然是再次請(qǐng)求,但已經(jīng)過修改,則會(huì)將其對(duì)應(yīng)的JSP源文件轉(zhuǎn)換為后綴為.java的Servlet文件,然后通過Java編譯器編譯成后綴為.class的字節(jié)碼文件,并最終通過Java虛擬機(jī)解釋運(yùn)行。如果該頁面是再次請(qǐng)求且未被修改,則直接調(diào)用內(nèi)存中已存在的字節(jié)碼文件,然后直接運(yùn)行。最后將運(yùn)行的結(jié)果發(fā)送到客戶端,通過瀏覽器解析并顯示出來。

2JavaWeb開發(fā)環(huán)境搭建填空題Java平臺(tái)包括3個(gè)版本:JavaSE、JavaEE和JavaME,若進(jìn)行JavaWeb應(yīng)用程序開發(fā)選擇JavaSE標(biāo)準(zhǔn)版最為恰當(dāng)。環(huán)境變量可根據(jù)其作用范圍分為用戶變量和系統(tǒng)變量兩類,用戶變量只能被當(dāng)前登錄系統(tǒng)的用戶使用,而系統(tǒng)變量可以被所有系統(tǒng)用戶使用。如果要保證Tomcat8.5能正常安裝和使用,則必須保證計(jì)算機(jī)中已安裝7.0及以上的JDK版本。在Tomcat的安裝目錄中conf文件夾保存Tomcat所有配置文件,webapps文件夾則是Tomcat默認(rèn)的Web應(yīng)用發(fā)布目錄。將項(xiàng)目文件夾test放置在D盤根目錄下,若要部署該項(xiàng)目,可在%Tomcat安裝目錄%\Conf\server.xml文件中添加標(biāo)簽<Contextpath="/test"docBase="D:\test"/>,則可通過URLhttp://localhost:8080/test訪問該項(xiàng)目的默認(rèn)首頁。假設(shè)本機(jī)已完成JavaWeb開發(fā)環(huán)境搭建,保持Tomcat服務(wù)器默認(rèn)端口號(hào)不變,已將文件夾exercise復(fù)制到本機(jī)Tomcat安裝目錄下的webapps文件夾中,要訪問該項(xiàng)目中的login.htm文件,若該文件不在服務(wù)器的默認(rèn)首頁清單上,則應(yīng)在瀏覽器地址欄中輸入的URL是http://localhost:8080/exercise/login.htm,若已將該文件設(shè)置為Tomcat服務(wù)器的默認(rèn)首頁,則在瀏覽器地址欄中輸入的URL可簡化為http://localhost:8080/exercise。設(shè)置Tomcat服務(wù)器上web應(yīng)用的默認(rèn)首頁需在Tomcat安裝路徑下conf文件夾中的web.xml文件進(jìn)行配置。在Eclipse的官方下載網(wǎng)站上提供針對(duì)不同開發(fā)者的下載文件,如果要進(jìn)行JavaWeb開發(fā),則需要選擇針對(duì)JavaEE開發(fā)者專用的Eclipse。在Eclipse中完成項(xiàng)目創(chuàng)建后,需在項(xiàng)目下的WebContent目錄中創(chuàng)建JSP源文件。選擇題已安裝JDK7.0版本,則下列不能安裝的Tomcat版本是(A)A.7.0 B.8.0 C.8.5 D.9.0可將Web應(yīng)用文件夾復(fù)制到Tomcat安裝目錄下的(D)文件夾中來實(shí)現(xiàn)該Web應(yīng)用在Tomcat上的部署。A.bin B.conf C.lib D.webapps若要將Tomcat服務(wù)器的HTTP協(xié)議訪問端口修改為8081,可將server.xml文件中的標(biāo)簽<Connector>修改為(A)A.<Connectorport="8081"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"/>B.<Connectorport="8081"protocol="AJP/1.3"redirectPort="8443"/>C.<Connectorport="8081"protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150"SSLEnabled="true"> D.<Connectorport="8081"protocol="org.apache.coyote.http11.Http11AprProtocol"maxThreads="150"SSLEnabled="true">下列說法錯(cuò)誤的是(A)A.32位的操作系統(tǒng)只能安裝32位版的JDK,64位的操作系統(tǒng)只能安裝64位版的JDK。B.選擇Tomcat版本時(shí)必須基于之前安裝的JDK版本,二者必須兼容。C.Eclipse的版本位數(shù)必須與計(jì)算機(jī)上已安裝的JDK版本位數(shù)一致,否則無法運(yùn)行。D.開發(fā)JavaWeb的應(yīng)用程序必須選擇JavaEE開發(fā)者專用的Eclipse在Eclipse中創(chuàng)建動(dòng)態(tài)網(wǎng)站項(xiàng)目時(shí),需選擇主界面中【File】菜單中的【New】子菜單中的(C)命令。A.JPAProject B.JavaProject C.DynamicWebProject D.StaticWebProject簡答題在安裝JDK和JRE時(shí),對(duì)它們的安裝路徑是否有要求?答:有要求,JRE的安裝路徑一定要和JDK的安裝路徑屬于同一個(gè)父文件夾。在設(shè)置環(huán)境變量時(shí),Path、CLASSPATH和JAVA_HOME是否是必須的?請(qǐng)說明理由。答:Path、CLASSPATH必須要設(shè)置,而JAVA_HOME不是必須要設(shè)置的。因?yàn)镻ath變量說明Java可執(zhí)行程序的位置,如果不設(shè)置,則無法編譯和運(yùn)行Java源程序;CLASSPATH說明JavaAPI中類和包文件的搜索路徑,如果不設(shè)置會(huì)出現(xiàn)無法找到Java源文件中使用的JavaAPI類或接口問題;而JAVA_HOME實(shí)際上存放的是JDK的安裝路徑,在進(jìn)行環(huán)境變量設(shè)置時(shí)該變量是被包含在Path、CLASSPATH變量值中的,因此,我們可以不使用JAVA_HOME變量,而是直接將JDK的安裝路徑放在Path、CLASSPATH變量值中。如何檢驗(yàn)一臺(tái)計(jì)算機(jī)上已成功安裝了Tomcat服務(wù)器?答:打開Tomcat的配置界面能正常啟動(dòng)Tomcat服務(wù)器,在瀏覽器的地址欄輸入http://localhost:8080,能打開Tomcat的介紹頁面,就說明Tomcat已經(jīng)安裝成功了。請(qǐng)簡述在Eclipse中開發(fā)JavaWeb應(yīng)用程序的基本步驟。答:(1)創(chuàng)建一個(gè)動(dòng)態(tài)網(wǎng)站項(xiàng)目;(2)在項(xiàng)目中創(chuàng)建JSP源文件;(3)編寫源代碼;(4)將項(xiàng)目部署到Tomcat服務(wù)器上;(5)啟動(dòng)Tomcat服務(wù)器;(6)運(yùn)行源代碼文件查看頁面效果。實(shí)踐操作題在Eclipse中創(chuàng)建JavaWeb應(yīng)用程序項(xiàng)目test,在test項(xiàng)目中包含hello.jsp文件,編寫hello.jsp實(shí)現(xiàn)如圖2-1所示頁面效果。圖2-1【實(shí)踐操作題】的運(yùn)行結(jié)果源代碼如下:hello.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>我的第一個(gè)練習(xí)</title></head><body><%out.print("大家好!");%><br><br></body></html>

3靜態(tài)網(wǎng)頁開發(fā)基礎(chǔ)填空題HTML是一種標(biāo)記語言,使用HTML標(biāo)簽來描述網(wǎng)頁。<head></head>是網(wǎng)頁頭部信息標(biāo)簽對(duì),它們之間的代碼用于描述網(wǎng)頁頭部信息,<body></body>是網(wǎng)頁主體內(nèi)容信息標(biāo)簽對(duì),它們之間的文本是可見的頁面內(nèi)容信息。標(biāo)題元素?fù)碛幸粋€(gè)開始標(biāo)簽<title>及一個(gè)結(jié)束標(biāo)簽</title>,該標(biāo)簽對(duì)內(nèi)的內(nèi)容用于定義文檔標(biāo)題。<ahref="page.html">跳轉(zhuǎn)</a>定義了HTML文檔中的一個(gè)超鏈接,該超鏈接文字顯示為“跳轉(zhuǎn)”,點(diǎn)擊該超鏈接頁面將跳轉(zhuǎn)到同一目錄下的page.html。在表格中用<tr></tr>標(biāo)簽對(duì)定義表格內(nèi)的行,<td></td>標(biāo)簽對(duì)定義行內(nèi)普通單元格,<th></th>標(biāo)簽對(duì)定義表頭單元格。在HTML文檔中使用<ul>元素來定義無序列表,使用<ol>元素來定義有序列表,使用<dl>元素來定義自定義列表。我們可以使用<div>元素進(jìn)行網(wǎng)頁布局,也可以使用表格進(jìn)行布局。包含在表單中的表單元素通常都以輸入標(biāo)簽<input>定義,我們通過設(shè)置該標(biāo)簽的屬性type的值來使表單數(shù)據(jù)的輸入方式呈現(xiàn)不同樣式。JavaScript對(duì)象是擁有屬性和方法的數(shù)據(jù)。JavaScript函數(shù)是執(zhí)行特定任務(wù)的代碼塊,定義函數(shù)需要使用關(guān)鍵字function。將外部JS文件style.css包含到本網(wǎng)頁中需要使用標(biāo)簽<scriptsrc="style.js"></script>。HTML事件是發(fā)生在HTML元素上的事情。用戶點(diǎn)擊某個(gè)HTML元素會(huì)導(dǎo)致點(diǎn)擊事件,事件屬性名是onclick。層疊樣式表是一種用來表現(xiàn)HTML或XML等文件樣式的計(jì)算機(jī)語言。一個(gè)聲明則由屬性和值組成,二者被冒號(hào)分開。使用CSS規(guī)則p{color:blue;font-size:20px}可以將p元素內(nèi)的文字顏色定義為藍(lán)色,字體大小設(shè)置為20像素。按照右側(cè)<bodystyle="font-size:20px"><pstyle="font-size<bodystyle="font-size:20px"><pstyle="font-size:15px">Lily</p><p>Lucy</p></body>單獨(dú)的層疊樣式表文件的后綴為.css。類選擇器可以為特定類名的HTML元素指定特定的樣式,類名由HTML元素的class屬性設(shè)置.選擇題在以下HTML標(biāo)簽中用于換行的標(biāo)簽是(C)。A.<html> B.<p> C.<br/> D.<h1>在以下HTML標(biāo)簽對(duì)之間的文本被顯示為段落的是(B)。A.<html></html>B.<p></p> C.<h1></h1> D.<title></title>在以下關(guān)于<img>元素說法錯(cuò)誤的是(B)。A.<img>標(biāo)簽用于定義HTML文檔中的圖片信息B.<img>標(biāo)簽中src屬性值只能使用相對(duì)地址 C.<img>標(biāo)簽中width和height屬性值為整數(shù),單位是像素 D.<img>標(biāo)簽中width和height屬性若不設(shè)置則圖片以源圖片文件實(shí)際大小顯示若要設(shè)置表單數(shù)據(jù)提交目的頁的URL需要在<form>標(biāo)簽中設(shè)置(C)屬性。A.id B.name C.action D.method若要使表單中的<input>標(biāo)簽不顯示在網(wǎng)頁中,則需要將該<input>標(biāo)簽的類型設(shè)置為(D)。A.text B.password C.submit D.hidden在以下關(guān)于表單說法錯(cuò)誤的是(C)。A.如果希望表單中存在的多個(gè)單選按鈕同組互斥,則需要將這些<input>標(biāo)簽中name屬性值設(shè)置為相同值B.只有選中狀態(tài)的復(fù)選框才會(huì)將對(duì)應(yīng)<input>標(biāo)簽的value屬性值提交到目的頁 C.只有設(shè)置了name和value屬性值的<input>標(biāo)簽在表單提交數(shù)據(jù)時(shí)才會(huì)生成請(qǐng)求參數(shù)D.表單默認(rèn)的提交數(shù)據(jù)方式是get方式下列字符串可以做JavaScript變量的是(A)。A.text B.var C.%x D.a=b下列語句錯(cuò)誤的是(D)。A.vara="true"; B.vara=true; C.vara=2e3; D.varnames[]=newArray();下列語句正確的是(B)。A.varnames=newArray[1,2]; B.varnames=[1,2]; C.varnames={1,2}; D.varstudent=[name:"Lily",age:18];在以下關(guān)于switch語句說法正確的是(C)。A.switch語句通常適用于條件表達(dá)式的取值為連續(xù)值時(shí)的多分支選擇B.每個(gè)case分支都必須使用break語句 C.在一個(gè)switch語句中的所有case表達(dá)式的值必須互不相同D.每個(gè)case分支都必須包含語句塊當(dāng)某個(gè)HTML元素發(fā)生改變時(shí)會(huì)引發(fā)的事件屬性名是(B)。A.onclick B.onchange C.onkeydown D.onload下列代碼符合CSS語法規(guī)則的是(A)。A.h1{color:red} B.h1{font-size=14} C.h1{color=#ff0000} D.h1{font-family:sansserif} 在以下關(guān)于層疊樣式表說法錯(cuò)誤的是(D)。A.使用內(nèi)聯(lián)樣式,需要在相關(guān)的標(biāo)簽內(nèi)設(shè)置style屬性的值B.當(dāng)需要將一個(gè)網(wǎng)頁中所有同類HTML元素設(shè)置為相同樣式時(shí)最好使用內(nèi)部樣式表C.當(dāng)樣式需要應(yīng)用于很多頁面時(shí),外部樣式表將是理想的選擇D.外部樣式表文件中除了包含CSS規(guī)則描述代碼外還可以包含HTML的代碼以下代碼屬于CSS規(guī)則中id選擇器的是(B)。A.p,h1{font-family:黑體} B.#p{color:#fff111}C..font{font-size:20px} D.[name]{text-align:center}判斷題HTML標(biāo)簽不會(huì)顯示在瀏覽器中,只在后臺(tái)起到解釋作用。()所有的HTM標(biāo)簽都是成對(duì)出現(xiàn)的。(×)在HTML中一共有7級(jí)標(biāo)題,使用標(biāo)簽元素<h1>~<h7>來描述。(×)無序列表中各項(xiàng)目使用粗體圓點(diǎn)進(jìn)行標(biāo)記。()自定義列表是項(xiàng)目及其定義的組合,其中dt></dt>標(biāo)簽對(duì)定義列表項(xiàng),<dd></dd>定義列表項(xiàng)的定義。()在表格中通過設(shè)置<tr>標(biāo)簽的屬性rowspan來實(shí)現(xiàn)多行單元格的合并。(×)表單中的所有<input>標(biāo)簽都需要設(shè)置name屬性的值。(×)在JavaScript中不存在數(shù)組越界訪問的問題。()break語句的功能是中斷循環(huán)體語句的本次執(zhí)行,然后開始下一次循環(huán)。(×)在HTML頁面文件中,可以在同一個(gè)<script>標(biāo)簽對(duì)中既包含外部獨(dú)立JS文件又包含內(nèi)嵌JavaScript代碼。(×)CSS規(guī)則由一個(gè)選擇器及一條聲明組成。(×)我們可以在網(wǎng)頁文件的任意位置設(shè)置<link>標(biāo)簽,從而將外部樣式表文件包含到本網(wǎng)頁中。(×)在IE8中運(yùn)行包含屬性選擇器的網(wǎng)頁,文件源代碼必須聲明<!DOCTYPE>才能正常顯示由屬性選擇器設(shè)置的樣式。()簡答題在使用表單提交數(shù)據(jù)有哪兩種方式?這兩種方式有何區(qū)別?答:使用表單提交數(shù)據(jù)有g(shù)et和post兩種方式,這兩種方式的區(qū)別在于:get方式提交數(shù)據(jù)時(shí)表單信息將以含參字符串形式附加在URL末尾傳遞給目的頁,而post方式提交數(shù)據(jù)時(shí)表單信息將放在請(qǐng)求報(bào)文正文中傳遞給目的頁。在頁面上嵌入JavaScript有哪些方式?請(qǐng)簡述它們的實(shí)施過程。答:在HTML頁面中嵌入JavaScript的代碼有兩種方式:(1)在網(wǎng)頁文件中內(nèi)嵌JavaScript腳本。這種方式會(huì)將JavaScript代碼直接放入當(dāng)前HTML頁面中,此時(shí),所有的Javascript代碼必須位于<script>與</script>標(biāo)簽之間,且<script>與</script>標(biāo)簽對(duì)必須放置在<html></html>標(biāo)簽對(duì)中。(2)導(dǎo)入外部JavaScript文件。這種方式將JavaScript代碼放在獨(dú)立的文件(文件后綴為.js)中,然后在HTML頁面中設(shè)置<script>標(biāo)簽屬性,將JavaScript腳本文件包含在本頁面中。在頁面上嵌入CSS代碼有哪些方式?這些樣式在作用范圍上有什么區(qū)別。答:在HTML頁面中嵌入CSS代碼有3種方式:內(nèi)聯(lián)樣式、內(nèi)部樣式表、外部樣式表(1)內(nèi)聯(lián)樣式的作用范圍最小,僅對(duì)包含此樣式的HTML元素有效。(2)內(nèi)部樣式表的作用范圍比內(nèi)聯(lián)樣式大但小于外包樣式表,這種方式可以通過設(shè)置一條CSS規(guī)則就實(shí)現(xiàn)對(duì)本網(wǎng)頁中一類或是幾類HTML元素樣式的設(shè)置。(3)外部樣式表作用范圍最大,這種方式創(chuàng)建的獨(dú)立的.css文件可作用于包含該樣式文件的多個(gè)網(wǎng)頁,從而對(duì)多個(gè)網(wǎng)頁的一類或是幾類HTML元素進(jìn)行樣式設(shè)置。編程題編寫網(wǎng)頁compute.html,該網(wǎng)頁的訪問效果如圖3-4所示,在網(wǎng)頁文本框中輸入任意數(shù)值并點(diǎn)擊【計(jì)算平方】按鈕,輸入數(shù)值的平方值將已紅色顯示在網(wǎng)頁中。圖3-4【題1】訪問效果示意圖源代碼如下:compute.html<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>計(jì)算平方</title></head><body>請(qǐng)輸入數(shù)值:<inputtype="text"id="data"/><inputtype="button"onclick="compute()"value="計(jì)算平方"/><p>計(jì)算結(jié)果:<divid="result"style="color:red"></div></body><scripttype="text/javascript">functioncompute(){ document.getElementById("result").innerHTML="";//將計(jì)算結(jié)果置空 varstr=document.getElementById("data").value;//以字符串格式提取數(shù)值 if(str==""||isNaN(str)){//如果輸入為空或?yàn)榉菙?shù)值 alert("請(qǐng)輸入有效數(shù)據(jù)"); document.getElementById("data").focus();//聚焦于輸入文本框 document.getElementById("data").select();//選中文本框中所有內(nèi)容 } else{ vardata=parseFloat(str);//將字符串轉(zhuǎn)換為數(shù)值 document.getElementById("result").innerHTML=data*data;//計(jì)算平方并顯示在結(jié)果部分 }}</script></html>編寫網(wǎng)頁modifyPwd.html,該網(wǎng)頁的訪問效果如圖3-5所示,編寫代碼實(shí)現(xiàn)以下要求:在網(wǎng)頁中兩個(gè)文本框中輸入相同密碼并點(diǎn)擊【確定】按鈕,兩個(gè)文本框中信息將提交到ModifyPwdHandle.jsp文件,點(diǎn)擊【重置】按鈕則清空兩個(gè)文本框中的信息。信息提交前需要完成有效性驗(yàn)證以保證:新密碼不為空、新密碼長度為6個(gè)字符及以上、新密碼不能包含字符%、兩次輸入的密碼必須一致,不滿足要求的密碼信息不允許提交且給出相應(yīng)錯(cuò)誤提示信息。網(wǎng)頁樣式滿足:頁面背景色pink;標(biāo)題、文本框和按鈕字體為楷體;兩文本框高35像素,寬160像素;兩個(gè)按鈕高40像素,寬70像素,字體大小為20像素;標(biāo)題和兩個(gè)按鈕居中顯示圖3-5【題2】訪問效果示意圖源代碼如下:modifyPwd.html<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title>修改密碼</title><styletype="text/css">h1,input{ font-family:楷體}.text{ width:160px;height:35px}.button{ width:70px;height:40px; font-size:20px}.center{ text-align:center}</style></head><scripttype="text/javascript"> functionfocusAndSelect(obj){ obj.focus(); obj.select(); } functionvalidate(){ varobj1=document.fm.password1; varobj2=document.fm.password2; varpassword1=obj1.value; varpassword2=obj2.value; if(password1==""){ alert("新密碼不能為空!"); focusAndSelect(obj1); } elseif(password1.length<6){ alert("新密碼長度不能少于6個(gè)字符!"); focusAndSelect(obj1); } elseif(password1.match('%')){ alert("新密碼不能包含字符%!"); focusAndSelect(obj1); } elseif(password1!=password2){ alert("兩次密碼輸入不一致!"); focusAndSelect(obj2); } else{ document.fm.submit(); } }</script><bodystyle="background-color:pink"><formname="fm"method="post"action="ModifyPwdHandle.jsp"> <table> <tr><tdclass="center"><h1>修改密碼</h1></td></tr> <tr><td>     新密碼:<inputtype="password"name="password1"class="text"><br><br> 確認(rèn)密碼:<inputtype="password"name="password2"class="text"><p> </td></tr> <tr><tdclass="center"> <inputtype="button"value="確定"onclick="validate()"class="button">   <inputtype="reset"value="重置"class="button"> </td></tr> </table> </form></body></html>

4JSP語法基礎(chǔ)填空題JSP源文件是在傳統(tǒng)網(wǎng)頁的HTML代碼中插入Java腳本和JSP標(biāo)記而構(gòu)成的文件,其擴(kuò)展名為.jsp。JSP源代碼的動(dòng)態(tài)部分包括JSP腳本、JSP指令、JSP動(dòng)作和注釋。JSP的注釋包括三類:HTML注釋、JSP注釋和Java注釋。HTML注釋的符號(hào)是<!---->,JSP注釋的符號(hào)是<%----%>,Java腳本注釋包括兩類,其中符號(hào)//是單行注釋,符號(hào)/**/是多行注釋。如果需要將注釋的內(nèi)容發(fā)送到客戶端,則需要使用的注釋符是HTML注釋,如果不需要將注釋的內(nèi)容發(fā)送到客戶端,而僅僅是保留在Servlet文件中,則需要使用的注釋符是Java注釋,如果既不需要將注釋的內(nèi)容發(fā)送到客戶端,也不需要保留在Servlet文件中,則需要使用的注釋符是JSP注釋。JSP腳本元素包括JSP腳本段、JSP表達(dá)式和JSP聲明。用于處理JSP頁面所涉及功能的業(yè)務(wù)邏輯的JSP腳本元素是JSP腳本段,用于在JSP頁面中定義變量和方法的JSP腳本元素是JSP聲明,用于在JSP頁面中輸出表達(dá)式的值JSP表達(dá)式。與JSP腳本段<%out.print(n+1);%>功能等價(jià)的JSP表達(dá)式為<%=n+1%>。定義一個(gè)字符串型變量name,如果希望該變量在服務(wù)器被關(guān)閉后才被釋放,則定義該變量的語句為<%!Stringname;%>,如果希望該變量在所在頁面關(guān)閉后立即釋放,則定義該變量的語句為<%Stringname;%>。在JSP指令中,用于設(shè)定JSP頁面的全局屬性和相關(guān)功能的是page指令,用于將特定位置上的資源包含到當(dāng)前的JSP文件中的是include指令,用于定義一個(gè)標(biāo)簽庫及標(biāo)簽庫的前綴的是taglib指令。若要使客戶端網(wǎng)頁正常顯示中文,則需要設(shè)置page指令的contentType屬性,將屬性中的字符編碼設(shè)置為UTF-8或GBK或gb2312。我們需要設(shè)置page指令的errorPage屬性,將屬性值設(shè)置為error.jsp,才能使用專門的錯(cuò)誤處理頁面error.jsp來處理JSP文件的異常,我們使用的指令<%@pageimport=“java.util.Date”%>可以在當(dāng)前頁面中導(dǎo)入類java.util.Date。我們使用的指令<%@includefile=“head.jsp”%>可以在當(dāng)前頁面中包含文件head.jsp。我們使用的指令<%@tagliburi=“/jsp/jst1/core”profix=“c”%>可以在當(dāng)前頁面中導(dǎo)入JSP核心標(biāo)簽庫,并為其取別名c。JSP動(dòng)作元素相當(dāng)于預(yù)定義的Java腳本,主要為請(qǐng)求處理階段提供信息,它按照XML語法進(jìn)行書寫,利用標(biāo)簽來控制Servlet引擎的行為。與JavaBean相關(guān)的三個(gè)JSP動(dòng)作包括:useBean、setProperty和getProperty。<jsp:useBean>動(dòng)作標(biāo)簽中,用來指定JavaBean對(duì)象名稱的屬性是name,用于指定JavaBean對(duì)象所屬類名的屬性是class,用于指定JavaBean對(duì)象作用范圍的屬性是scope,用于指明JavaBean對(duì)象類型的屬性是type。創(chuàng)建一個(gè)JavaBean類Contact類(位于bean包中)的對(duì)象contact,可以使用的JSP腳本是<%bean.Contactcontact=newbean.Contact();%>,動(dòng)作是<jsp:useBeanid="contact"class="bean.Contact"/>。如果需要完成對(duì)JavaBean對(duì)象user所有屬性賦值,我們需要使用setProperty標(biāo)簽,并將標(biāo)簽屬性name設(shè)置為user,屬性property設(shè)置為*。如果需要讀取JavaBean對(duì)象user的password屬性的值,我們需要使用getProperty標(biāo)簽,并將標(biāo)簽屬性name設(shè)置為user,屬性property設(shè)置為password。include動(dòng)作用于在JSP頁面動(dòng)態(tài)地包含其他文件,forward動(dòng)作可實(shí)現(xiàn)頁面間的跳轉(zhuǎn),param動(dòng)作常作為其他JSP動(dòng)作的子動(dòng)作使用,主要用來實(shí)現(xiàn)參數(shù)的傳遞。若使用動(dòng)作標(biāo)簽<jsp:includepage=”information.jsp”flush=”false”/>就能將頁面information.jsp包含到本頁中,且插入information.jsp前不清空本頁的輸出流。在定義include動(dòng)作時(shí),若屬性flush值為false時(shí),該屬性實(shí)際上是可以省略不寫在動(dòng)作標(biāo)簽中的。若使用動(dòng)作標(biāo)簽<jsp:forwardpage=”register.jsp”/>就能使當(dāng)前頁面跳轉(zhuǎn)至“register.jsp”頁面。若使用動(dòng)作標(biāo)簽<jsp:paramvalue=”123”name=”password”/>就能創(chuàng)建并傳遞參數(shù)password,其值為123。選擇題代碼<%@pagelanguage="java"contentType="text/html;charset=gb2312"%>屬于(C)A.JSP注釋B.JSP腳本C.JSP指令 D.JSP動(dòng)作代碼<jsp:includepage="index.jsp"></jsp:include>是屬于(D)A.JSP注釋B.JSP腳本C.JSP指令 D.JSP動(dòng)作代碼<%intn=5;%>是屬于(B)A.JSP注釋B.JSP腳本C.JSP指令 D.JSP動(dòng)作代碼<%--JSP示例--%>是屬于(A)A.JSP注釋B.JSP腳本C.JSP指令 D.JSP動(dòng)作下列說法錯(cuò)誤的是(B)A.JSP中輸入信息到客戶端可以使用out.print()方法。B.JSP中輸入信息到客戶端可以使用System.out.print()方法。C.不能在JSP腳本段中定義方法。D.在一個(gè)JSP頁面中可以編寫任意數(shù)量的腳本片段,腳本段會(huì)在服務(wù)器端按順序依次自動(dòng)執(zhí)行。在JSP文件中與<%out.print(n);%>等價(jià)的代碼是(D)A.n B.<%n%> C.<%!n%> D.<%=n%>在page指令中,可以重復(fù)多次設(shè)置不同值的屬性是(C)A.languageB.contentTypeC.import D.errorPage以下指令正確的是(A)A.<%@pageimport="java.text.*,java.util.*"%>B.<%@pagecontentType="UTF-8"%>C.<%@pagecontentType="text/html"%>D.<%@pagelanguage="C#"%>以下指令正確的是(B)A.<%@includefile="One.jsp,Two.jsp"%>B.<%@includefile="One.jsp"%>C.<%@includefile="<%=urlString%>"%>D.<%@includefile="check.jsp?n=1"%>以下說法正確的是(A)A.一條page指令可以導(dǎo)入多個(gè)包或類B.一條include指令可以插入多個(gè)文件資源C.一條taglib指令可以導(dǎo)入多個(gè)標(biāo)簽庫文件D.在使用page指令時(shí)必須對(duì)其所有的屬性值進(jìn)行設(shè)置以下關(guān)于JavaBean的說法錯(cuò)誤的是(B)A.JavaBean是滿足特定要求的Java類,該類必須是公共類B.JavaBean必須包含一個(gè)公共的無參構(gòu)造方法,且必須顯式寫在類體中C.JavaBean的所有屬性都是私有的D.JavaBean中必須定義一組公共的存取方法若希望創(chuàng)建的JavaBean對(duì)象僅在當(dāng)前頁面有效,則需要將<jsp:useBean>標(biāo)簽的scope屬性設(shè)置為(A)A.pageB.request C.session D.application下列直接使用固定值為JavaBean對(duì)象屬性賦值的標(biāo)簽是(A)A.<jsp:setPropertyname="user"property="name"value="Lily"/>B.<jsp:setPropertyname="user"property="name"param="name"/>C.<jsp:setPropertyname="user"property="name"/>D.<jsp:setPropertyname="user"property="*"/>下列與JSP表達(dá)式<%=user.getName()%>等價(jià)的標(biāo)簽是(C)A.<jsp:setPropertyname="user"property="name"/>B.<jsp:setPropertyname="name"property="user"/>C.<jsp:getPropertyname="user"property="name"/>D.<jsp:getPropertyname="name"property="user"/>當(dāng)我們需要將某資源文件插入主頁面,并希望在資源文件中編寫的代碼對(duì)主頁產(chǎn)生直接影響時(shí),需要選擇(A)A.include指令B.include動(dòng)作C.forward動(dòng)作D.insert指令當(dāng)需要將某資源文件插入主頁面,并動(dòng)態(tài)指定包含的資源文件名稱時(shí),需要選擇(B)A.include指令B.include動(dòng)作C.forward動(dòng)作D.insert指令以下關(guān)于include動(dòng)作說法錯(cuò)誤的是(B)A.include動(dòng)作包含的資源文件是在主頁運(yùn)行時(shí)編譯B.include動(dòng)作將資源文件的實(shí)際內(nèi)容全部包含到主頁中C.include動(dòng)作包含的資源文件將編譯成獨(dú)立于主頁的ServletD.include動(dòng)作包含的資源名稱可以是常量字符串也可以是變量以下關(guān)于forward動(dòng)作說法錯(cuò)誤的是(A)A.forward動(dòng)作可實(shí)現(xiàn)任意頁面的跳轉(zhuǎn)B.forward動(dòng)作可包含子動(dòng)作C.若客戶端訪問的A.jsp包含forward動(dòng)作使請(qǐng)求轉(zhuǎn)發(fā)到B.jsp,則客戶端得到的響應(yīng)是B.jsp運(yùn)行的結(jié)果D.若客戶端訪問的A.jsp包含forward動(dòng)作使請(qǐng)求轉(zhuǎn)發(fā)到B.jsp,但客戶端瀏覽器中地址還是A.jsp的訪問URL以下關(guān)于param動(dòng)作說法錯(cuò)誤的是(B)A.param動(dòng)作不會(huì)單獨(dú)使用B.一個(gè)主動(dòng)作中只可加入一個(gè)param動(dòng)作C.include動(dòng)作和forward動(dòng)作都可作為param動(dòng)作的主動(dòng)作D.param動(dòng)作可創(chuàng)建請(qǐng)求參數(shù)以下說法正確的是(A)A.include動(dòng)作比include指令的維護(hù)代價(jià)更小B.include指令與include動(dòng)作功能是完全等價(jià)的,因此它們可以無條件互換C.param動(dòng)作可以單獨(dú)使用,功能是實(shí)現(xiàn)參數(shù)傳遞D.forword動(dòng)作實(shí)現(xiàn)頁面跳轉(zhuǎn)時(shí),地址欄中的URL也會(huì)相應(yīng)變化為跳轉(zhuǎn)后的頁面名稱程序修改題<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><%voidprintInfo(){for(inti=1;i<=5;i++){out.println("歡迎來到本系統(tǒng)<br>");}}%><html><body> <%printInfo();%></body></html>應(yīng)將以上程序修改為<%@pagelanguage="java"contentType="text/html;charset=gb2312"%><%! publicStringprintInfo(){ Strings=""; for(inti=1;i<=5;i++){ s=s+"歡迎來到本系統(tǒng)<br>"; } returns; }%><html> <body> <%=printInfo()%> </body></html>編程題編寫一個(gè)顯示“九九乘法口決表”的JSP程序,運(yùn)行結(jié)果如圖4-5所示。圖4-5【題1】的運(yùn)行結(jié)果源代碼如下:mulTable.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>九九乘法表</title></head><body><h2>九九乘法表</h2><tableborder="1"><%for(inti=1;i<=9;i++){ out.println("<tr>"); for(intj=1;j<=i;j++){ out.print("<td>"+i+"*"+j+"="+(i*j)+"</td>"); } out.println("</tr>");}%></table></body></html>按以下要求編寫程序:編寫input.html文件,執(zhí)行效果如圖4-5(a)所示,輸入半徑值然后點(diǎn)擊【確定】按鈕將提交半徑數(shù)據(jù)到結(jié)果頁面result.jsp。編寫result.jsp文件,執(zhí)行效果如圖4-5(b)所示,該文件根據(jù)接收到的半徑值計(jì)算并顯示圓的周長和面積,同時(shí)累計(jì)圓的個(gè)數(shù)。(a)輸入半徑 (b)顯示圓信息及個(gè)數(shù)圖4-6【題2】的運(yùn)行結(jié)果源代碼如下:Circle.javapackagebeans;publicclassCircle{ intr; finaldoublePI=3.14; publicintgetR(){ returnr; } publicvoidsetR(intr){ this.r=r; } publicdoubleperimeter(){ return2*PI*r; } publicdoublearea(){ returnPI*r*r; }}input.html<html><head><metacharset="UTF-8"><title>輸入半徑</title></head><body><formaction="result.jsp"method="post"> 請(qǐng)輸入半徑:<inputname="r"type="text"> <inputtype="submit"value="確定"></form></body></html>result.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>圓的信息</title></head><%!intcount=0;%><jsp:useBeanid="c"class="beans.Circle"/><jsp:setPropertyproperty="*"name="c"/><%count++;%><body><h3>這是第<%=count%>個(gè)圓</h3>圓周長:<%=c.perimeter()%><br>圓面積:<%=c.area()%><br><br><ahref="input.html">返回輸入半徑</a></body></html>按以下要求編寫程序:編寫addContacts.html文件,執(zhí)行效果如圖4-7(a)所示,輸入聯(lián)系人姓名、電話、Email和地址,點(diǎn)擊【確定】按鈕將提交聯(lián)系人信息到addContactsHandle.jsp文件。編寫添加聯(lián)系人處理頁面addContactsHandle.jsp,執(zhí)行效果如圖4-7(b)所示。要求使用JSP動(dòng)作來完成對(duì)addContacts.html文件傳送數(shù)據(jù)的接收及輸出。(a)輸入聯(lián)系人信息 (b)添加聯(lián)系人處理結(jié)果圖4-7【題3】的運(yùn)行結(jié)果源代碼如下:Contacts.javapackagebean;publicclassContacts{ privateStringname; privateStringtel; privateStringemail; privateStringaddress; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ =name; } publicStringgetTel(){ returntel; } publicvoidsetTel(Stringtel){ this.tel=tel; } publicStringgetEmail(){ returnemail; } publicvoidsetEmail(Stringemail){ this.email=email; } publicStringgetAddress(){ returnaddress; } publicvoidsetAddress(Stringaddress){ this.address=address; }}addContacts.html<html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>添加聯(lián)系人</title></head><bodystyle="text-align:center;"><h3>添加聯(lián)系人</h3> <formmethod="post"action="addContactsHandle.jsp"> 姓名:<inputtype="text"name="name"><br> 電話:<inputtype="text"name="tel"><br> Email:<inputtype="text"name="email"><br> 地址:<inputtype="text"name="address"><br><br> <inputtype="submit"value="確定">   <inputtype="reset"value="重置"> </form></body></html>addContactsHandle.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><html><head><title>添加聯(lián)系人處理</title></head><body><jsp:useBeanid="contacts"class="bean.Contacts"/><jsp:setPropertyname="contacts"property="*"/><h3>聯(lián)系人添加成功!</h3>聯(lián)系人信息如下:<br>--姓名:<jsp:getPropertyname="contacts"property="name"/><br>--電話:<jsp:getPropertyname="contacts"property="tel"/><br>--Email:<jsp:getPropertyname="contacts"property="email"/><br>--地址:<jsp:getPropertyname="contacts"property="address"/><br><br><ahref="addContacts.html">繼續(xù)添加聯(lián)系人</a></body></html>按以下要求編寫程序:編寫login.html文件,執(zhí)行效果如圖4-8(a)和(c)所示,輸入名稱和密碼,選擇登陸角色(學(xué)生/教師),點(diǎn)擊【確定】按鈕將提交登陸信息到loginHandle.jsp文件。編寫copyright.jsp文件,該文件顯示“返回登錄”超鏈接(鏈接login.html),以及版權(quán)信息。編寫loginHandle.jsp文件,該文件驗(yàn)證login.html提交的名稱和密碼信息,若輸入正確則根據(jù)login.html提交的角色信息分別跳轉(zhuǎn)到學(xué)生主頁main_Student.jsp和教師主頁main_Teacher.jsp,同時(shí)將登錄名稱作為參數(shù)傳遞給對(duì)應(yīng)頁面,若輸入錯(cuò)誤,則給出錯(cuò)誤提示,執(zhí)行效果如圖4-8(b)所示,該文件包含版權(quán)信息頁copyright.jsp。(學(xué)生有效用戶名Tom,密碼123;教師有效用戶名Jerry,密碼456)編寫main_Student.jsp文件,執(zhí)行效果如圖4-8(c)所示,該文件包含copyright.jsp。編寫main_Teacher.jsp文件,執(zhí)行效果如圖4-8(d)所示,該文件包含copyright.jsp。(a)輸入登錄信息(b)登陸失敗(c)以學(xué)生角色成功登陸(d)以教師角色成功登陸圖4-8【題4】的運(yùn)行結(jié)果源代碼如下:login.html<html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>登錄</title></head><body> <formmethod="post"action="loginHandle.jsp"> 名稱:<inputtype="text"name="name"><br> 密碼:<inputtype="password"name="password"><br> <inputtype="radio"name="role"value="student"checked>學(xué)生 <inputtype="radio"name="role"value="teacher">教師<br><br> <inputtype="submit"value="確定">   <inputtype="reset"value="重置"> </form></body></html>copyright.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><ahref="login.html">返回登錄</a><footer> <hr><ul> <li>地址:重慶電子工程職業(yè)學(xué)院軟件學(xué)院|郵編:401331</li> <li>技術(shù)服務(wù)熱線lt;/li> <li>email:12345678@</li><li>版權(quán):重慶電子工程職業(yè)學(xué)院軟件學(xué)院李丹</li></ul></footer>loginHandle.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><html><head><title>登錄處理</title></head><body><%Stringname=request.getParameter("name");Stringpassword=request.getParameter("password");Stringrole=request.getParameter("role");if(role.equals("student")&&name.equals("Tom")&&password.equals("123")){%> <jsp:forwardpage="main_Student.jsp"> <jsp:paramvalue="<%=name%>"name="userName"/> </jsp:forward><%}elseif(role.equals("teacher")&&name.equals("Jerry")&&password.equals("456")){%> <jsp:forwardpage="main_Teacher.jsp"> <jsp:paramvalue="<%=name%>"name="userName"/> </jsp:forward><%}%><h1>用戶名或密碼錯(cuò)誤!</h1><jsp:includepage="copyright.jsp"></jsp:include></body></html>main_Student.jsp<%@pagecontentType="text/html;charset=UTF-8"%><html><head><title>學(xué)生主頁</title></head><body><h1><%=request.getParameter("userName")%>同學(xué),歡迎你!</h1><jsp:includepage="copyright.jsp"></jsp:include></body></html>main_Teacher.jsp<%@pagecontentType="text/html;charset=UTF-8"%><html><head><title>教師主頁</title></head><body><h1><%=request.getParameter("userName")%>老師,歡迎你!</h1><jsp:includepage="copyright.jsp"></jsp:include></body></html>

5內(nèi)置對(duì)象填空題JSP將一些使用頻率較高的對(duì)象特殊處理,使這些對(duì)象無需創(chuàng)建就可以直接使用,這些對(duì)象被稱為內(nèi)置對(duì)象。經(jīng)常在JSP的內(nèi)置對(duì)象有out、request、response、session、application、pageContext、page、config和exception。在JSP中提供了四種作用域:頁面域、請(qǐng)求域、會(huì)話域和應(yīng)用域。out對(duì)象的功能主要有兩個(gè):向客戶端瀏覽器輸出信息和服務(wù)器緩沖區(qū)管理。print()及println()方法的區(qū)別在于println()方法在輸出信息后還會(huì)輸出一個(gè)換行符。request對(duì)象封裝了由客戶端生成的的HTTP請(qǐng)求的所有細(xì)節(jié),通過這個(gè)對(duì)象提供的相應(yīng)方法,可以處理客戶端提交的HTTP請(qǐng)求中的各項(xiàng)參數(shù)。請(qǐng)求參數(shù)是頁面間傳遞數(shù)據(jù)的重要載體,我們可以使用3種方式來創(chuàng)建它:一是使用表單,二是使用查詢字符串,三是使用param動(dòng)作作為子動(dòng)作的forward動(dòng)作或include動(dòng)作標(biāo)簽。為了使接收表單提交信息的頁面能正常顯示中文(使用“UTF-8”編碼集),我們需要在該頁面中添加下列語句request.setCharacterEncoding("UTF-8");。提取變量名為name的request變量的值時(shí)應(yīng)使用語句 request.getAttribute("name");。response對(duì)象在JSP頁面內(nèi)有效,主要用于響應(yīng)客戶請(qǐng)求,向客戶端輸出信息。實(shí)現(xiàn)頁面的跳轉(zhuǎn),可以使用forward動(dòng)作標(biāo)簽或response對(duì)象的sendRedirect方法。response對(duì)象sendRedirect方法的參數(shù)類型應(yīng)該是String。使用語句 response.setHeader("refresh","10;URL=index.jsp");可以使當(dāng)前頁面延遲10秒后自動(dòng)跳轉(zhuǎn)到index.jsp頁面。使用語句response.setHeader("refresh","10");可以使當(dāng)前頁面每隔10秒自動(dòng)刷新一次。設(shè)置頁面的響應(yīng)內(nèi)容類型可以使用response對(duì)象的setHeader方法或setContentType方法。response對(duì)象的getBufferSize方法用于獲取緩沖區(qū)大小,方法返回值為int型,單位為字節(jié)。response對(duì)象的setBufferSize方法用于設(shè)置緩沖區(qū)大小,若該方法的參數(shù)值設(shè)置為0則表示不緩沖。使用request對(duì)象能實(shí)現(xiàn)同一請(qǐng)求范圍內(nèi)服務(wù)器端不同頁面間的數(shù)據(jù)共享,使用session對(duì)象能實(shí)現(xiàn)同一會(huì)話期間服務(wù)器端不同頁面間的數(shù)據(jù)傳遞。提取變量名為ID的session變量的值時(shí)應(yīng)使用語句 session.getAttribute(“ID”);。刪除變量名為ID的session變量時(shí)應(yīng)使用語句session.removeAttribute(“ID”);。若我們要將session對(duì)象的有效時(shí)間設(shè)置為2小時(shí),可以使用 setMaxInactiveInterval方法并將參數(shù)設(shè)置為7200,或在項(xiàng)目文件夾下的web.xml文件中進(jìn)行配置。在JSP的內(nèi)置對(duì)象中,如果希望在一次請(qǐng)求過程中多頁面共享數(shù)據(jù)可以使用request對(duì)象,如果希望在一次會(huì)話中多頁面共享數(shù)據(jù)可以使用session對(duì)象,那么如果希望在多次會(huì)話中共享數(shù)據(jù),或多客戶間共享數(shù)據(jù)可以使用application對(duì)象。application對(duì)象在服務(wù)器啟動(dòng)時(shí)自動(dòng)創(chuàng)建,在服務(wù)器停止時(shí)自動(dòng)銷毀。提取變量名為num的application變量的值時(shí)應(yīng)使用語句 application.getAttribute(“num”);。刪除變量名為num的application變量時(shí)應(yīng)使用語句 application.removeAttribute(“num”);。應(yīng)用程序初始化參數(shù)在web.xml文件中設(shè)置。pageContext對(duì)象是PageContext類的實(shí)例,該對(duì)象代表頁面上下文環(huán)境。request、session、application和pageContext對(duì)象都可以作為在JSP頁面中存儲(chǔ)信息的容器,存儲(chǔ)在pageContext對(duì)象中的信息有效范圍是4個(gè)容器對(duì)象中最小的,僅限于當(dāng)前JSP頁面中。使用語句pageContext.setAttribute("name","Lily");(或pageContext.setAttribute("name","Lily",pageContext.PAGE_SCOPE);)可以將字符串"Lily"存入page域變量name中。使用語句pageContext.getAttribute("name");(或pageContext.getAttribute("name",PageContext.PAGE_SCOPE);)可以提取page域變量name的值。假設(shè)已分別在page域和request域中存入age變量,值分別是10和20,那么使用語句pageContext.findAttribute("age");得到的結(jié)果是10。每個(gè)JSP源文件都必須轉(zhuǎn)換成對(duì)應(yīng)的Servlet才能在Web服務(wù)器上編譯和運(yùn)行,這個(gè)轉(zhuǎn)換工作由Web服務(wù)器自動(dòng)進(jìn)行。每次運(yùn)行JSP源文件得到的JSP頁面實(shí)際上是該源文件轉(zhuǎn)換成的Servlet類的一個(gè)實(shí)例,而這個(gè)實(shí)例在JSP中可以用內(nèi)置對(duì)象page來代表。page對(duì)象只有在當(dāng)前JSP頁面內(nèi)才是合法的,類似于Java編程中的this指針。在JSP源文件中使用page對(duì)象的toString()方法得到字符串"org.apache.jsp.NewFile_jsp@128af0f",那么該JSP源文件的全名是NewFile.jsp,該頁面對(duì)象的hash碼為128af0f。config對(duì)象是ServletConfig類的實(shí)例,代表存放在服務(wù)器上與當(dāng)前JSP相關(guān)的配置信息,這些信息來自配置文件web.xml。在配置文件中<servlet-name>標(biāo)簽組用來配置Servlet的名字,<init-param>標(biāo)簽組用來配置Servlet的初始化參數(shù),該標(biāo)簽組的子標(biāo)簽組<param-name>用來配置初始化參數(shù)的名字,而子標(biāo)簽組<param-value>用來配置初始化參數(shù)的值。在Web服務(wù)器上有兩個(gè)web.xml配置文件,一個(gè)是所有項(xiàng)目共有的服務(wù)器配置文件,存放在Tomcat安裝路徑下的conf文件夾中,另一個(gè)是僅對(duì)當(dāng)前項(xiàng)目有效的項(xiàng)目配置文件,存放在項(xiàng)目發(fā)布路徑下的WEB-INF文件夾中。<servlet><servlet-name>myFile</servlet-name><jsp-file>/myFile.jsp</jsp-file></servlet><servlet-mapping><servlet-name>myFile</servlet-name><url-pattern>/myFile.jsp</url-pattern></servlet-mapping>若在配置文件中對(duì)JSP文件myFile.jsp的配置信息如右邊文本框中所示,假設(shè)該文件存放在項(xiàng)目test的根目錄下,且<servlet><servlet-name>myFile</servlet-name><jsp-file>/myFile.jsp</jsp-file></servlet><servlet-mapping><servlet-name>myFile</servlet-name><url-pattern>/myFile.jsp</url-pattern></servlet-mapping>我們?cè)贘SP中處理異常的方案有兩種,一種是直接在可能發(fā)生異常的JSP文件中使用try-catch結(jié)構(gòu),另一種是編寫一個(gè)專門的異常處理頁,然后在可能發(fā)生異常的JSP文件中設(shè)置二者的關(guān)聯(lián)。 exception對(duì)象是Throwable類的實(shí)例,代表JSP腳本中產(chǎn)生的錯(cuò)誤和異常。使用exception對(duì)象的toString()方法和getMessage()方法可以獲取異常信息,其中 toString方法獲得的信息因?yàn)榘惓n愋?,專業(yè)性更強(qiáng),更適于在程序員進(jìn)行代碼調(diào)試時(shí)使用,而getMessage方法的調(diào)用結(jié)果則更適用于客戶端結(jié)果顯示??梢允褂胕nstanceof運(yùn)算符來驗(yàn)證exception對(duì)象究竟屬于哪類異常。使用exception對(duì)象的JSP源文件必須將page指令的isErrorPage屬性的值設(shè)置為TRUE。我們有兩種用于保持HTTP狀態(tài)的技術(shù),一種是使用session對(duì)象,另一種就是使用Cookie。每條Cookie信息是以key-value的形式進(jìn)行保存的。寫Cookie的操作涉及到三個(gè)步驟:第一步是創(chuàng)建Cookie對(duì)象,第二步是設(shè)置Cookie對(duì)象的有效時(shí)間,第三步是將Cookie對(duì)象寫到客戶端。向客戶端寫入Cookie時(shí)需要用到response對(duì)象的addCookie方法。服務(wù)器要提取Cookie信息時(shí)需要用到request對(duì)象的getCookies方法,提取的結(jié)果是得到一個(gè)Cookie類型的數(shù)組。選擇題下列方法調(diào)用錯(cuò)誤的是(A)A.out.print()B.out.print("1")C.out.print(1)D.out.print(true)與語句<%out.println("1");%>不等價(jià)的語句是(C)A.<%out.println(1);%>B.<%out.print("1\n");%>C.<%out.print("1");%>D.<%out.println(’1’);%>下列方法中,是out對(duì)象用來向客戶端輸出信息的方

溫馨提示

  • 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)論