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