第12章JSP
12.1什么是靜態(tài)網(wǎng)頁(yè)?什么是動(dòng)態(tài)網(wǎng)頁(yè)?區(qū)別的標(biāo)識(shí)什么?
【答】靜態(tài)網(wǎng)頁(yè)是由用戶(hù)使用文本編輯器創(chuàng)建和編輯的,通常這類(lèi)網(wǎng)頁(yè)中的內(nèi)容不會(huì)改變,在瀏覽器中每次查看結(jié)果相同。動(dòng)態(tài)網(wǎng)頁(yè)是但瀏覽器訪問(wèn)Web服務(wù)器時(shí)由應(yīng)用程序動(dòng)態(tài)創(chuàng)建的,應(yīng)用程序根據(jù)瀏覽器的不同要求,創(chuàng)建不同類(lèi)型的HTML文檔,由于對(duì)瀏覽器每次請(qǐng)求的響應(yīng)都是臨時(shí)生成的,因此用戶(hù)通過(guò)動(dòng)態(tài)網(wǎng)頁(yè)看到的內(nèi)容可根據(jù)需要不斷變化。
靜態(tài)網(wǎng)頁(yè)的后綴名通常為.htm、.html、.shtml、.xml,動(dòng)態(tài)網(wǎng)頁(yè)的后綴名通常為.asp、.jsp、.php、.perl、.cgi,因此二者的區(qū)別主要是后綴名不同。
12.2什么是動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)?它在服務(wù)器端執(zhí)行還是在客戶(hù)端執(zhí)行?主要的特點(diǎn)是什么?
【答】動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)是當(dāng)瀏覽器訪問(wèn)Web服務(wù)器時(shí),在服務(wù)器端執(zhí)行應(yīng)用程序,根據(jù)瀏覽器的不同請(qǐng)求,動(dòng)態(tài)創(chuàng)建不同內(nèi)容的HTML文檔,再將該HTML文檔返回給客戶(hù)端的瀏覽器。它是在服務(wù)器端執(zhí)行。主要特點(diǎn)是擴(kuò)充了網(wǎng)頁(yè)功能,增強(qiáng)了網(wǎng)頁(yè)的動(dòng)態(tài)特性。即使同一個(gè)Web頁(yè)也會(huì)因用戶(hù)不同的需求而顯示出不同的內(nèi)容。
12.3什么是JSP?JSP有什么特點(diǎn)?JSP與java有什么關(guān)系?
【答】JSP是Sun公司推出的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),它在HTML文檔中直接嵌入Java語(yǔ)言,JSP的特點(diǎn)是平臺(tái)無(wú)關(guān)性、運(yùn)行效率高、可重用性強(qiáng)、數(shù)據(jù)庫(kù)連接方便、安全性好。java是一種編程語(yǔ)言,和C語(yǔ)言有些相似,HTML也是一種編程語(yǔ)言,是用來(lái)做網(wǎng)站的頁(yè)面的,如果把JAVA語(yǔ)言寫(xiě)進(jìn)HTML語(yǔ)言里面,就是JSP。
12.4簡(jiǎn)述其他動(dòng)態(tài)網(wǎng)頁(yè)的特點(diǎn),并說(shuō)明JSP具有哪些優(yōu)勢(shì)【答】其他動(dòng)態(tài)網(wǎng)頁(yè)有ASP、PHP、PERL、CGIASP的特點(diǎn):
(1)ASP是一種程序語(yǔ)言,無(wú)須編譯.
(2)為純文本文件.
(3)獨(dú)立于瀏覽器.
(4)源程序不會(huì)讓客戶(hù)端看到.
(5)可與任何ActiveXScript語(yǔ)言兼容使用.
(6)實(shí)現(xiàn)復(fù)雜數(shù)據(jù)庫(kù)操作.PHP的特點(diǎn):
PHP是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語(yǔ)言.它大量地借用C,Java和Perl語(yǔ)言的語(yǔ)法,并耦合PHP自己的特性,使WEB開(kāi)發(fā)者能夠快速地寫(xiě)出動(dòng)態(tài)生成頁(yè)面.它支持目前絕多數(shù)數(shù)據(jù)庫(kù)。PHP是完全免費(fèi)的,可以不受限制地獲得源碼,甚至可以從中加進(jìn)自己需要的特色。
PERL的特點(diǎn):Perl是按GNUPublicLicense和ArticticLicense兩種許可證形式分發(fā)的,其實(shí)質(zhì)是開(kāi)源軟件、自由軟件的,原先運(yùn)行于UNIX和類(lèi)UNIX系統(tǒng),現(xiàn)在已可以方便地在OS/2,Windows9x,Windows/NT等系統(tǒng)下運(yùn)行。Perl是一種解釋運(yùn)行的語(yǔ)言,和BASH程序一樣,一般Perl程序的第一行需注明自己是一個(gè)Perl程序而不是Shell程序,所以一般將下面一行語(yǔ)句:#!/usr/bin/perl作為文件的第一行。
CGI的特點(diǎn):運(yùn)行速度快。做同樣的事情Java開(kāi)銷(xiāo)較大,因此是解釋執(zhí)行的。
兼容性好。并非所有的瀏覽器都支持Java,而那些支持Java的瀏覽器也不能在所有平臺(tái)上運(yùn)行。可以用任何一種你熟悉的高級(jí)語(yǔ)言如C、C++、Cshell或VB來(lái)書(shū)寫(xiě)CGI程序。特別有一種叫Perl的語(yǔ)言,是現(xiàn)在寫(xiě)CGI,尤其是表單類(lèi)程序的首選。
12.5什么是Servlet?JSP與Servlet有什么關(guān)系?
【答】Servlet是用Java語(yǔ)言編寫(xiě)的、協(xié)議和平臺(tái)都獨(dú)立的服務(wù)器端組件,實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)。Servlet使用的是ServletAPI,不是Java的核心類(lèi)庫(kù),沒(méi)有包含在JDK中,它有Tomcat提供。JSP是Servlet功能的擴(kuò)充。
12.6JSP技術(shù)與Applet有什么區(qū)別?
【答】applet是客戶(hù)端的程序,它們可以直接嵌入到網(wǎng)頁(yè)或者其他特定的容器中,并能夠產(chǎn)生特殊的效果,servlet是服務(wù)端器的程序,用于實(shí)現(xiàn)服務(wù)器功能的擴(kuò)充,響應(yīng)客戶(hù)端請(qǐng)求,JSP則是對(duì)servlet簡(jiǎn)化,用于方便輸出動(dòng)態(tài)頁(yè)面。
12.7JSP文檔與HTML文檔有什么關(guān)系?JSP文檔能夠在JDK中運(yùn)行嗎?它需要在什么環(huán)境中運(yùn)行?
【答】在HTML文檔中嵌入Java語(yǔ)言,記得到JSP文檔,JSP文檔的文件擴(kuò)展名為.jsp.要正常使用jsp必須安裝jdk,還需要安裝jsp服務(wù)器,一般常用的有tomcatresin。運(yùn)行環(huán)境:Web服務(wù)器和JSP容器
12.8什么是JSP容器?它安裝在哪里?具有什么功能?
【答】JSP容器:JSPContainer,安裝在Apache服務(wù)器上,JSP容器是將JSP轉(zhuǎn)化成Servlet應(yīng)用程序,并為Servlet提供運(yùn)行環(huán)境的程序。
12.9簡(jiǎn)述JSP文檔的執(zhí)行過(guò)程【答】執(zhí)行過(guò)程如下:
1.客戶(hù)端瀏覽器發(fā)出jsp頁(yè)面請(qǐng)求。
2.web服務(wù)器搜索到指定jsp文檔轉(zhuǎn)交jsp容器處理。
3.jsp容器將jsp文檔轉(zhuǎn)換成Servlet應(yīng)用程序,將Servlet應(yīng)用程序編譯成java類(lèi)文件(.class),執(zhí)行servlet的類(lèi)文件。
4.servlet運(yùn)行時(shí),根據(jù)客戶(hù)端請(qǐng)求參數(shù),返回執(zhí)行結(jié)果的動(dòng)態(tài)HTML文檔。
12.10JSP文檔由誰(shuí)對(duì)其進(jìn)行編譯、執(zhí)行?在什么時(shí)候進(jìn)行編譯?第一次執(zhí)行與其后的執(zhí)行有什么不同?
【答】jsp文檔由JSP容器編譯執(zhí)行,當(dāng)web服務(wù)器搜索到指定的JSP文檔轉(zhuǎn)交jsp容器時(shí)將jsp文檔轉(zhuǎn)換成Servlet應(yīng)用程序,將Servlet應(yīng)用程序編譯成java類(lèi)文件(.class),執(zhí)行servlet的類(lèi)文件。第一次執(zhí)行時(shí)需要編譯,其后執(zhí)行不需要編譯。
12.11基于JSP的Web應(yīng)用結(jié)構(gòu)有什么特點(diǎn)?
【答】基于JSP的Web應(yīng)用結(jié)構(gòu)有兩種:兩層瀏覽器/服務(wù)器結(jié)構(gòu),三層瀏覽器/服務(wù)器結(jié)構(gòu)
12.12JSP中定義了哪些標(biāo)記?它們擴(kuò)展了HTML語(yǔ)言的哪些功能?
【答】聲明標(biāo)記,表達(dá)式標(biāo)記,注視標(biāo)記如下:
Jsp可以實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建網(wǎng)頁(yè)。
12.13JSP有哪些隱含對(duì)象?各對(duì)象的作用是什么?
【答】jsp隱含對(duì)象:application,session,out,request,response各對(duì)象的作用:通過(guò)request對(duì)象,可以取得客戶(hù)端提交的數(shù)據(jù)信息,以及web服務(wù)器的參數(shù)。Response對(duì)象包含服務(wù)器向客戶(hù)端做出的應(yīng)答信息。Out對(duì)象用于在jsp文檔的scriplet中輸出數(shù)據(jù)。Application對(duì)象保存服務(wù)器端的jsp容器信息。Session對(duì)象保存客戶(hù)端的瀏覽器信息。
12.14什么是application對(duì)象?什么是session對(duì)象??jī)烧咧g有何差別?
【答】application對(duì)象屬于javax.servlet.ServletContext接口,session對(duì)象屬于javax.servlet.http.HttpSession接口。
差別:Session是在站點(diǎn)的頁(yè)面從打開(kāi)到被關(guān)閉之前一直生存的,關(guān)閉或跳轉(zhuǎn)到其它網(wǎng)站就會(huì)使Session死掉。而Application是從站點(diǎn)發(fā)布以來(lái)一直存活的,除非重啟了站點(diǎn)服務(wù),IIS。
從作用域?yàn)橹v:Session是對(duì)應(yīng)某一個(gè)用戶(hù)的。而Application是整站共用的。
12.15什么是request對(duì)象?什么是response對(duì)象??jī)烧咧g有何差別?
【答】Request對(duì)象在HTTP請(qǐng)求期間,檢索客戶(hù)端瀏覽器傳遞給服務(wù)器的值。Response對(duì)象是用來(lái)控制發(fā)送給用戶(hù)的信息,包括直接發(fā)送信息給瀏覽器,重定向?yàn)g覽器到另一個(gè)URL或設(shè)置cookie的值。
區(qū)別:request是請(qǐng)求,即客服端發(fā)來(lái)的請(qǐng)求、response是響應(yīng),
是服務(wù)器做出的響應(yīng)。
12.16什么是JavaBeans?它與Java和JSP有什么關(guān)系?通常在什么場(chǎng)合需要使用JavaBeans技術(shù)?
【答】JavaBeans是Java的對(duì)象組件技術(shù),提供組件復(fù)用的關(guān)鍵技術(shù),使用javabeans技術(shù)需要兩方面:先設(shè)計(jì)javabeans所屬的java類(lèi),然后在jsp文檔中使用jsp操作命令聲明javaBeans并為其設(shè)置屬性,在jsp文檔中使用的javaBeans名稱(chēng)是其所屬類(lèi)的實(shí)例,通過(guò)設(shè)置javaBeans的各種屬性值,可以改變javaBeans的狀態(tài)。當(dāng)需要對(duì)組件重復(fù)使用時(shí)要使用javaBeans技術(shù)。