《JSP程序設計》教學指導_第1頁
《JSP程序設計》教學指導_第2頁
《JSP程序設計》教學指導_第3頁
《JSP程序設計》教學指導_第4頁
《JSP程序設計》教學指導_第5頁
已閱讀5頁,還剩77頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEPAGE82《JSP程序設計》教學指導目錄第1章課程概述 31.1為什么需要開設本課程 31.2與前續課程的關系 41.3與后繼課程的關系 41.4課程目標 4第2章JSP基礎知識 52.1經驗 52.2重點難點突破 62.3習題與解答 62.3.1單元習題 62.3.2參考答案 15第3章JSP語法知識 183.1經驗 183.2重點難點突破 183.3習題與解答 183.3.1單元習題 183.3.2參考答案 25第4章JSP內置對象 274.1經驗 274.2重點難點突破 284.3習題與解答 284.3.1單元習題 284.3.2參考答案 37第5章JSP數據庫編程 425.1經驗 425.2重點難點突破 425.3習題與解答 445.3.1單元習題 445.3.2參考答案 48第6章JavaBean技術 516.1經驗 516.2重點難點突破 526.3習題與解答 526.3.1單元習題 526.3.2參考答案 56第7章Servlet技術 587.1經驗 587.2重點難點突破 597.3習題與解答 607.3.1單元習題 607.3.2參考答案 69第8章JSP高級應用 718.1經驗 718.2重點難點突破 72第9章Q&A 739.1JSP基礎常見問題解答 739.2數據庫編程常見問題解答 769.3JavaBean技術常見問題解答 769.4Servlet常見問題解答 789.5JSP高級應用常見問題解答 80第1章課程概述1.1為什么需要開設本課程隨著Internet的出現和興起,腳本語言開始把服務器編程加入到Web應用領域。為此,Sun公司推出了編程員使用的Javaservlet和JSP作為其在Web應用軟件中實現服務器端編程功能的解決方案。Sun公司構想的Web應用軟件結構包括HTML文件、servlet、JSP文件以及圖象文件。本課程旨在使學生熟悉servlet和JSP的各種特性。由于servlet的靈活性和可移植性,它可用于定制和增強郵件服務器、Web服務器和應用服務器的運行能力。另一方面,JSP的特性使之更適用于分離Web應用軟件中的靜態和動態內容。換句話說,JSP有助于分離Web設計者(負責HTML中靜態內容的生成)和Web開發者(負責HTML中動態內容的生成)的工作,使兩者能各司其職,實現對Web應用軟件開發的“分而治之”。JSP還有一個附加功能,就是它能夠生成靜態XML文檔,這一特性大大減輕了程序員的負擔,把他們從繁重的XML文檔編碼工作中解放了出來。此外,使用JSP時,servlet是自動生成的,從而節約了大量的為servlet編碼和構建的時間。因此,JSP不僅有助于創建基于Java編程語言的獨立于平臺的商業應用軟件,還提供了能在HTML和Java開發者之間起著卓有成效的協調作用的工具。除了向學生介紹servlet和JSP編程的概念外,本課程還將使學生熟悉:與CGI腳本和ASP相比,Servlet的優點Servlet的特征、工作方式及其生命周期會話跟蹤和servlet鏈JSP基本原理JSP的重要性(盡管已經有了servlet)JSP頁面的基本結構和組成部分為什么需要標簽庫規范標簽庫中定制標簽的結構與定制標簽的實現相關聯的文件的結構由標簽庫部署定制標簽本課程結束時,學生應該能理解:引入JSP不僅有助于提高服務器端的編程能力,更奠定了Java作為服務器端編程的首選語言的地位。1.2與前續課程的關系學習本課程的學生應該能執行以下任務:編寫基本HTML頁—熟練使用HTML標簽創建用戶界面。編寫Java應用程序—由于JSP文件的主要部分是Java文件。因此這一點很關鍵,要將重點放在使學生具備創建可用于JSP的bean組件的能力。在Windows環境下工作—在Windows環境下導航。創建并維護文檔—使用編輯器完成簡單的編輯任務。1.3與后繼課程的關系1.4課程目標在結束本模塊的學習時,學生應該能:創建servlet。使用servlet跟蹤、維護會話。設計JSP應用程序,程序中使用bean組件與數據庫交互。在JSP應用程序中實現標簽庫功能。分析客戶需求,決定編寫JSP應用程序要用的機制。區分JSP頁面的各種組成部分。使用HTML創建圖形用戶界面。使用JSP元素創建應用程序,實現在數據庫中檢索數據。在JSP應用程序中使用Javabean。使用標簽庫分離應用程序中的靜態和動態內容。編譯JSP應用程序。執行JSP應用程序。處理運行時錯誤。第2章JSP基礎知識2.1經驗由于JSP技術的重點在于隔離動態和靜態內容,因此本節課開始時,教師可以先和學生一起探討網絡應用程序組件是怎樣引用靜態和動態內容的。從講解客戶和服務器端腳本的差別開始上這節課??膳e一些日常生活中的例子解釋為什么需要服務器端腳本編程以及服務器端腳本編程的高效性。JSP的好處就在于能廓分Web設計者和Web開發者的工作性質,從而使開發人員得以專注于業務邏輯的實現,不必過問HTML中靜態內容的可視化設計和顯示輸出。應該讓學生理解Servlet超越CGI腳本和ASP的優勢。在實現部分,詳細討論以下幾點:ServletAPI的層次結構Servlet的生命周期本章提到的客戶指瀏覽器,服務器指運行servlet的Web服務器。servlet的執行結果以HTML形式輸出可顯示在客戶中。區分GET和POST方法。討論部署servlet的不同方法,如J2EE和JWS。另外,論述PATH和CLASSPATH變量的重要性。2.2重點難點突破利用下面這個例子解釋客戶腳本編程和服務器端腳本編程的差別。你準備使用你的ID和密碼登錄某網站。這時需要對這些字段檢查其有效性如下:檢查這些字段是否為空白:完成這項檢查只需執行客戶端程序即可。如果在服務器端做同樣的檢查,不僅需要更長的處理時間還會增加網絡的開銷。檢查用戶ID和密碼是否有效:這項驗證工作必須在服務器端完成,因為驗證ID和密碼需要用到服務器內的數據庫。利用去飯館吃飯的例子,說明三層架構的概念。老張去飯館,先跟服務生要菜單看,這就是表述層,再跟服務生點菜,服務生拿著菜單去交給后臺大廚,這就是業務邏輯層,大廚做好菜再讓服務生拿上來,這就是數據訪問層。2.3習題與解答2.3.1單元習題一、填空題1.Tomcat服務器的默認端口是。2.異常的處理,可在該方法的代碼段中包含3類代碼:、和代碼塊。3.JSP文件最終會轉換為文件。4.在JSP文件中漢字所使用的編碼機制是。5.JSP的實質是。6.JSP的英文全稱是。7.電子商務的開發標準是。8.JSP預加載的類名是、、和。9.java的數據類型分為兩種,它們分別是和。10.java基本類型包括、、和。11.java引用類型包括、和。12.java中類型之間有兩種轉換方法:和。13.的內容是相對固定的,而的內容會隨著訪問時間和訪問者發生變化。14.是按一定的結構和規則組織起來的相關數據的集合。15.JSP服務器端運行環境的搭建通常有三種方案;、和。16.在JDK環境變量配置中,必須配置的兩個變量是和。17.在Tomcat成功安裝和啟動后,可以在瀏覽器中輸入_______________或_____________來測試安裝配置是否正常。18.列舉三種JSP的開發工具:、和。19.在WEB-INF下必須有的一個XML文件是。20.常見的Web服務器有、和。21.為了使得JSP中能正常顯示中文信息,必須在page指令中設置charset的值為。22.在傳統的網頁HTML文件中加入和JSP標記,就構成了JSP網頁(擴展名為.jsp)。23.具有交往性的網站使用戶能夠直接與網站或者網站的其他用戶進行信息交流。不具備交往性的網站一般稱為。24.是指其頁面信息可以根據需求或者用戶的瀏覽狀況,實現與用戶的交流和頁面信息自動更新的網站。25.開發工具可以用任何一種語言編寫,只要這種語言具有標準輸入、輸出和環境變量。26.在動態Web開發工具中,哪一種開發工具具有“一次編寫、處處運行”的特點。27.是一種用于構建在Java平臺上發布的應用程序、Applet和組件的開發環境。28.Java源程序的擴展名為java,經java編譯器編譯后的文件,其擴展名為。29.Java的特性,使得同一個Java類文件可以用于運行在所有Java的系統平臺上,即。30.Java語言的源程序代碼由編譯單元組成,每個Java源文件可以包含的元素有、引入類聲明、和接口聲明。31.在Java中使用、和循環控制流程的結構,并且支持方法的調用。循環結構有三種循環語句:for、和do-while循環。32.HTML是一種標記語言,使用各種標記格式化文本信息。在HTML頁面里以標記頁面的起始,標記頁面的標題,標記頁面的主體內容。33.JavaScript是一種并且安全性較強的腳本語言。JavaScript語句在客戶端瀏覽器被解釋執行,提供響應并且具有處理事件的能力并被嵌入到HTML文件之中。二、判斷題1.JSP(JavaServerPages)是由Sun公司在Java語言上開發出來的一種靜態網頁制作技術。()2.charset=GB2312指明了頁面中html靜態內容的編碼方式。()。3.charset=GB2312指明了頁面中html動態內容的編碼方式。()。4.學習JSP并不需要學習JavaBean。()5.JSP的執行肯定要經過Servlet才能執行。()6.JSP就是ASP,它們沒什么區別。()7.JSP不帶Session的管理。()8.不能應用JSP制作聊天室。()9.JSP不帶Application處理。()10.在JSP開頭并不需要<%pagelanguage="java"%>這句話。()11.Myname與myname是同樣的兩個變量。()12.靜態網頁的每個網頁都有一個固定的URL,且網頁URL以.html、.htm、.shtml等常見形式為擴展名,而不含“?”。()13.靜態網頁的每個網頁都有一個固定的URL,且網頁URL以.html、.htm、.shtml等常見形式為擴展名,但可以包含“?”。()14.通常,靜態網頁不需要數據庫的支持,而動態網頁卻需要數據庫的支持。()15.通常,靜態網頁需要數據庫的支持,而動態網頁卻不需要數據庫的支持。()16.動態網頁是指在接到用戶訪問要求后動態生成的頁面,頁面內容會隨著訪問時間和訪問者發生變化。()17.靜態網頁實際上并不是獨立存在于服務器上的網頁文件,只有當用戶請求時服務器才返回一個完整的網頁。()18.CGI的中文全稱叫通用網關界面。()19.一臺普通的計算機不需要做任何配置就可以成為Web服務器。()20.一臺普通的計算機要想成為Web服務器,必須通過相應的程序(如IIS、PWS和Apache等)來實現。()21.JSP擁有Java語言“一次編寫,各處運行”的特點,幾乎可以運行在所有平臺上。()22.運用JSP技術進行開發可以將內容的生成和顯示相分離。()23.在維護方面,B/S結構的維護比C/S困難,維護開支更大。()24.在安全性方面,B/S結構對安全的控制能力比C/S結構強。()25.在重用性方面,B/S程序側重整體性考慮,構件的重用性不是很好,而C/S一般采用多重結構,要求構件有相對獨立的功能,能夠相對較好地實現重用。()26.JSP頁面在第一次打開時速度較慢,因為要將JSP文件轉換成Servlet文件。()27.在服務器端運行環境的搭建中,Tomcat既可以作為JSP引擎,也可以作為Web服務器。()28.在JDK環境變量的配置中,path的功能是說明java實用程序所在的位置,而CLASSPATH的功能是說明類和包文件的搜索路徑。()29..html文件可以由瀏覽器直接解釋執行,而.jsp文件不能由瀏覽器直接解釋執行,必須由JSP引擎解釋執行。()三、選擇題1.下面哪一個不是JSP本身已加載的基本類?()(A)java.lang.*(B)java.io.*(C)javax.servlet.*(D)javax.servlet.jsp.*2.從“員工”表的“姓名”字段中找出名字包含“瑪麗”的人,下面哪條select語句正確:()(A)Select*from員工where姓名=’_瑪麗_’(B)Select*from員工where姓名=’%瑪麗_’(C)Select*from員工where姓名like‘_瑪麗%’(D)Select*from員工where姓名like‘%瑪麗%’3.Web應用程序打包后的擴展名是:(單選)()(A)EAR(B)WAR(C)JAR(D)RAR4.可以用于發送郵件的協議有:(多選)()(A)Pop3(B)SMTP(C)FTP(D)IMAPJsp在轉譯階段生成文件的擴展名是()(A)class(B)java(C)exe(D)bin下面的說法錯誤的是:(單選)()(A)Jsp可以處理動態內容和靜態內容(B)在Jsp最終會編譯成字節碼后執行(C)在jsp中可以使用腳本控制Html的標簽生成(D)Jsp中不能使用//注釋Java腳本中的代碼7.${empty""}的結果是:(單選)()(A)notnull(B)null(C)true(D)false8.一個Web應用程序的目錄由兩部分組成,()。(選擇三項) (A)一個classes目錄,還有一個包含了html、Servlet、JSP等文件的目錄 (B)一個包含公有資源的目錄,還有一個私有的目錄 (C)一個Web應用的根目錄,和在根目錄下的WEB-INF目錄 (D)一個可以訪問任何文件的目錄,一個禁止下載其中資源的目錄 9.在JAVA中,當發生404錯誤,瀏覽器會顯示默認的頁面,為了使得當發生404錯誤時,打開自己設計的文件:404Error.html,()在Web.xml中配置。(選擇一項) (A)<error><error-code>404</error-code><location>/errors/404Error.html</location></error> (B)<error><error-type>404</error-type><location>/errors/404Error.html</location></error> (C)<error><exception-type>javax.servlet.$404Exception</exception-type><location>/errors/404Error.html</location></error> (D)<error><error-code>404</error-code><location>/errors/404Error.html</location></error> 10.在J2EE中myWebApp是一個web應用程序的根目錄,當在瀏覽器中輸入http://localhost:8080/myWebApp/時,會自動打開該目錄下的start.jsp文件。為了達到這個要求,需要在web.xml中添加如下代碼。()(A)<welcom-file>start.jsp</welcom-file> (B)<welcom-file-list>start.jsp</welcom-file-list> C <welcom-list><welcom-file>start.jsp</welcom-file></welcome-list> D <welcom-file-list><welcom-file>start.jsp</welcom-file></welcom-file-list> 11.JSP代碼<%=”1+4”%>將輸出((A)1+4(B)5 (C)14 (D)不會輸出,因為表達式是錯誤的12.aa.jsp文件如下:<%!staticinti=0;intj=0;%><html><body><%for(;i++<2;){out.print(j++);out.print(“”);}%></body></html>有兩個客戶依次使用瀏覽器瀏覽aa.jsp,且每個客戶只瀏覽aa.jsp一次,那么第二個客戶看到瀏覽器顯示().(選擇一項)(A)01 (B)12 (C)34 (D)56 (E)什么也沒有13.在J2EE中,下面對JSP指令的描述,正確的是() (A)指令以”<%@開始,以”%>”結束 (B)指令以”<%開始,以%>”結束 (C)指令以”<”開始,以”>”結束 (D)指令以”<jsp:”開始,以”/>”結束 14.在()中存儲描述web應用程序的元數據。(A)jsp (B)jar文件 (C)Tag文件 (D)web.xml15.http協議默認使用()選一項(A)8080端口 (B)7001端口 (C)80端口 (D)25端口16.在下面的所有協議中,()是發送郵件的協議。(A)SMTP (B)IAMP (C)POP3 (D)HTTP17.JSP是在()階段生成Servlet源代碼的。(A)轉譯 (B)編譯 (C)執行 (D)響應18.下列選項中,(D)是正確的表達式(A)<%!Inta=0;%>(B)<%inta=0;%>(C)<%=(3+5);%> (D)<%=(3+5)%>19.jsp是在()階段生成Servlet源代碼的選一項(A)轉譯(B)編譯(C)執行(D)響應20.下列語法錯誤的有()(多選)(A)<%!intnum%>(B)<!--helloworld--!>(C)<%=5+3%>(D)<%@pageimport=”java.io.*;java.util.*”%>21.Java是一種非常高效的編程語言,下列不屬于其特性的是()。(A).簡單、跨平臺、分布式(B).健壯性和安全性(C).基于對象、解釋運行(D).多線程、網絡功能強大22.在JDK的工具包中用來編譯Java源文件的工具是()。(A).Javac(B).Javap(C).Java(D).Javah23.在Java源程序代碼中,使用()語句把當前文件放入所指向的包中。(A).Import(B).publicclass(C).package(D).interface24.在Java中,標識符號以字符或下劃線“”或“$”符號開頭,后面可以包含字母、下劃線、“$”或數字,下列選項中不能作為標識符的是()。(A).DateOfYear(B).Public(C).$System(D).Win32Systemvar25.在靜態Web中,下面說法錯誤的是()。(A)在靜態Web中可以插入GIF動畫圖片(B)在靜態Web中可以插入JavaScript代碼(C)在靜態Web中可以插入Java片段代碼(D)在靜態Web中可以插入Flash動畫26.在ASP開發工具中,下面說法錯誤的是()。(A)在頁面中可以插入Java片段代碼(B)在頁面中可以插入Flash動畫(C)在頁面中可以插入JavaScript代碼(D)在頁面中可以插入GIF動畫圖片27.在安裝JDK后,用戶需對JDK設置三個系統變量,下列不屬于其中變量名的是()。(A)JAVA-HOME(B)CATALINA-BASE(C)classpath(D)path28.配置JDK和Tomcat的系統變量時,既設置JDK路徑又設置Tomcat路徑的變量名是()。(A)classpath(B)CATALINA-HOME(C)path(D)JAVA-HOME四、問答題1.為什么JSP文件的第一次打開速度比較慢,而以后的速度會快很多?2.簡述JSP開發環境的搭建。3.與Servlet相比,JSP具有哪些明顯的優勢?4.JSP有哪些特點?5.試闡述JSP服務器端運行環境。五、程序題1.指出下面代碼的錯誤之處:<html><head></head><body><%@pagelanguage="java"%><%!inta1=8;stings1="Hello";out.println(s1);%></body></html>2.<%@Aimport="java.util.*"%><html><body><%!DatetheDate=newDate();{System.out.rintln("IngetDate()method");B}%>Hello!ThetimeisnowC</body></html>在以上程序中填寫適當的代碼使程序完成如圖3-5所示的效果。在A處填寫JSP指令。在B處填寫返回當前日期的代碼。在C處填寫輸出當前日期的代碼。3.<%@pagecontentType="A"language="java"%><html><title>使用數組來顯示橫條圖</title><body><%Ba[]={13,27,21,17,39};for(inti=0;i<=4;i++){out.print("第"+i+"個元素");out.print("<imgsrc=bar.jpgwidth="+C*5+"height=10><p>");}%></body></html>根據圖4-14所示實例效果,將程序補充完整:在A處填寫解決亂碼的代碼。在B處填寫變量數組的類型。在C處填寫實現效果所用代碼。<%!intcaculate(intx,intn){intvalue=0;if(n>=1){inta=1;if(D)//計算X的n次方for(inti=1;i<=n;i++)a=a*x;n=n-1;//遞歸調用value=a+E;}elsevalue=value+1;F;}%><%out.print(caculate(5,3));%>本程序是一個遞歸調用過程,其結果等于156,將程序補充完整:在D處填寫if語句的判斷條件。在E處填寫累加的變量。在F處填寫返回值。2.3.2參考答案填空題1.80802.trycatchfinally3.servlet(或字節碼)4.ISO-8859-15.Servlet6.JavaServerPage7.EJB+Servlet+JSP8.java.lang.*javax.serveet.*javax.servlet.jsp.*javax.servlet.http.*9.基本類型引用類型10.布爾類型、整數類型、字符類型和浮點類型11.組類接口12.隱性轉換強制轉換13.靜態網頁動態網頁14.數據庫15.J2SDK+TomcatJ2SDK+Apacher+TomcatJ2SDK+IIS+Tomcat16.PathCLASSPATH17.Http://:8080Http://localhost:808018.JCreatorEclipseDreamweaver19.Web.xml20.TomcatApacheIIS21.Gb231222.Jaca程序片段(Scriptlet)23.靜態web24.動態web25.CGI26.JSP開發工具27.JSP28.Class29.跨平臺一次編寫,處處運行30.一個或多個包聲明類31.條件分支while32.<html><head><title>33.基于對象和事件驅動用戶驅動二、判斷題1.(F)2.(T)3.(F)4.(F)5.(F)6.(F)7.(F)8.(F)9.(F)10.(T)11.(F)12.(T)13.(F)14.(T)15.(F)16.(T)17.(F)18.(T)19.(F)20.(T)21.(T)22.(T)23.(F)24.(F)25.(F)26.(T)27.(T)28.(F)29.(T)三、選擇題1~5BDB(BD)B6~10DC(BCD)AD11~15A16~20AADA(ABD)21~28四、問答題1.JSP文件就是在HTML文件中嵌入了一些Java語言。但在執行時JSP文件會轉換為Servlet文件),其中的靜態HTML僅僅用來輸出Servlet服務方法返回的信息。JSP頁面在第一次打開時速度比較慢,因為轉換成Servlet文件,這個過程需要一定時間(4分)。但如果JSP頁面不是第一次被調用,那么就意味著JSP文件已經被轉換為Servlet文件,那么再次請求該JSP頁面時,就可以直接調用該Servlet文件執行,因此,打開頁面的速度會變快。(4分)2.JSP開發環境的搭建必須經過以下幾個步驟:(1)下載并安裝JDK(2)配置環境變量。(3)下載并安裝TomCat。(4)在Tomcat服務器中建立WEB應用程序,步驟如下:①進入Tomcat的安裝目錄的webapps目錄,可以看到ROOT,examples,tomcat-docs之類Tomcat自帶的目錄;②在webapps目錄下新建一個目錄,起名叫myapp;③在myapp下新建一個目錄WEB-INF,注意,目錄名稱是區分大小寫的;④WEB-INF下新建一個文件web.xml;web.xml中的內容可以從Root目錄下的相應文件拷貝得到。⑤編寫一個JSP文件first.jsp。⑥將文件復制到myapp文件夾中;⑦啟動TomCat。⑧在瀏覽器中輸入:8080/myapp/first.jsp,即可以運行該程序。評分要求:第(1)、(2)、(3)步各1分,第(4)步5分。3.(1)方便與HTML混合。 對HTML來說,JSP容易插入Java對象,使HTML更容易加動態部分,而Servlet卻要對HTML的輸出做特殊的處理,增加代碼的編寫、測試時間。(2)在開發、測試方面比Servlet方便。修改JSP后,馬上就可以看到執行的結果,不需編譯;而Servlet卻需要編譯,放入執行代碼等復雜過程,將HTML的代碼與Java的程序代碼混合在一起增加了除錯的難度。4.特點:(1)JSP編譯成Servlet,是在用戶第一次訪問這個頁面的時候所花的時間較長,后面的擁護直接從內存中讀出數據。(2)Servlet仍然是解釋執行的。Java虛擬機本身就是解釋執行的(3)JSP雖是Servlet的延伸,但與Servlet還有很大不同。(4)在美國,EJB+Servlet+JSP幾乎成了電子商務的開發標準。5.在應用JSP進行Web程序開發時,服務器端的運行環境的搭建根據Web服務器的不同而有不同的方案,通常有三種方案:(1)J2SDK+Tomcat在這種方案里,Tomcat既作為JSP引擎又作為Web服務器。(2)J2SDK+Apache+Tomcat在這種方案里,Apache充當Web服務器,Tomcat充當JSP引擎。(3)J2SDK+IIS+Tomcat在這種方案里,IIS充當Web服務器,Tomcat充當JSP引擎。五、程序題1.答案:語句out.println(s1)不能寫在聲明的代碼之中2.pagereturntheDate<%=theDate%>3.text/html;charset=gb2312inta[i]n>=1calculate(x,n)returnvalue第3章JSP語法知識3.1經驗 程序設計語言的語法知識是程序設計的基礎,但基礎語法知識相對比較零散,教師需要通過一些有趣的實例或真實應用的項目來進行講解,激發學生的學習興趣。而不要為了講述語法而隨手舉例進行介紹,這樣學生學習起來會很困難,更不利于后續內容的學習。3.2重點難點突破說明JSP中指令與其它程序設計語言如Java語言的語法的不同,因為實際上JSP中的基礎語法是嵌入在HTML標記中的一些特殊的標記。同時,也要將JSP中的標記與ASP或ASP.NET中的標記進行區別。在這一部分內容中,特別要強調的是include指令與include動作的區別。教師可以通過多個實例進行講述。3.3習題與解答3.3.1單元一、填空題1.在JSP規范中,可以使用兩種格式的注釋:一種是;另一種是。2.JSP的語法元素主要包括:、、、和。3.指令元素分為三種,它們分別是、、和4.JSP規范中描述了3種腳本元素:、和。5.是指在客戶端顯示的注釋;而在客戶端不會輸出。6.<!—注釋內容-->是,<%--注釋內容-->是。7.可以通過選擇【查看】|【源文件】顯示出來的注釋是;不能顯示出來的注釋是。8.JSP程序中要用到的變量或方法必須首先。9.是一段在客戶端請求時需要先被服務器執行的Java代碼,它可以產生輸出,并把輸出發送到客戶的輸出流,同時也可以是一段流控制語句。10.在JSP三種指令中,用來定義與頁面相關屬性的指令是;用于在JSP頁面中包含另一個文件的指令是;用來定義一個標簽庫以及其自定義標簽前最的指令是。11.JSP中標準的動作元素包括:、、、、、和。12.動作元素允許在頁面被請求的時候包含一些其他的資源,如一個靜態的HTML文件或動態的JSP文件。13.動作元素允許將請求轉發到其他的HTML文件、JSP文件或者一個程序段。14.動作元素被用來以“name=value”的形式為其他元素提供附加信息。15.動作元素被用來在頁面中插入Applet或者JavaBean。16.動作元素被用來創建一個Bean實例并指定它的名字和作用范圍。17.動作元素用來設置Bean中的屬性值。18.動作元素用來獲得Bean中的屬性值。19.Page指令的MIME類型的缺省值為,缺省字符集為。二、判斷題1.會在客戶端(瀏覽器)顯示的注釋是隱藏注釋。()2.會在客戶端(瀏覽器)顯示的注釋是輸出注釋。()3.<%@page%>指令不一定放在頁面的頭部。()4.<%@pageimport="java.util.*,java.lang.*"buffer="5kb"autoFlush="false"%>,這句代碼是正確的。()5.<%@Include%>指令只能包括后綴名為.jsp的文件。()6.使用<jsp:forward>指令可以傳遞參數。()7.<%@Include%>指令只能包括后綴名為.jsp的文件。()8.格式如“<!—注釋內容-->”的注釋是隱藏注釋。()9.格式如“<%—注釋內容--%>”的注釋是輸出注釋。()10.JSP編譯器是不會對“<%--”和“--%>”之間的語句進行編譯的,它不會顯示在客戶的瀏覽器中,也不會在源代碼中被看到。()11.在JSP聲明中只能一次一個的聲明要用到的變量和方法。()12.在JSP中使用表達式必須以“;”作為表達式的結束符。()13.JSP中的表達式必須有返回值,且返回值被轉換為字符串。()14.Page指令的language屬性用于指定在腳本元素中使用的腳本語言,默認值是java,在JSP2.0規范中,該屬性的值也可以是javascript和vbscript等語言。()15.即使沒有使用Page指令設置charset為GB2312,JSP程序中的中文顯示也不會出現亂碼。()16.Page指令的所有屬性都可以重復設置。()17.Page指令中只有import屬性可以重復設置。()18.無論將Page指令放在JSP文件的哪個位置,它的作用范圍都是整個JSP頁面。()19.在使用include指令時,在被包含文件中可以使用<html>、</html>、<body>、</body>等標簽,不會引發錯誤。()20.在使用include指令時,包含文件中的變量和方法可以與包含文件中的變量和方法同名,不會引發錯誤。()21.在使用自定義標簽之前必須使用<%@taglib>指令引用標簽庫,但是,在一個頁面中只能使用一次。()22.<jsp:include>動作元素允許在頁面被請求的時候包含一些其他的資源,如一個靜態的HTML文件或動態的JSP文件。()23.<jsp:forward>操作允許將請求轉發到其他的HTML文件、JSP文件或者是一個程序段,通常請求被轉發后,會停止當前JSP文件的執行。三、選擇題1.Page指令用于定義JSP文件中的全局屬性,下列關于該指令用法的描述不正確的是:()(A)<%@page%>作用于整個JSP頁面。(B)可以在一個頁面中使用多個<%@page%>指令。(C)為增強程序的可讀性,建議將<%@page%>指令放在JSP文件的開頭,但不是必須的。(D)<%@page%>指令中的屬性只能出現一次。2.對于預定義<%!預定義%>的說法錯誤的是:()(A)一次可聲明多個變量和方法,只要以“;”結尾就行。(B)一個聲明僅在一個頁面中有效。(C)聲明的變量將作為局部變量。(D)在預定義中聲明的變量將在JSP頁面初始化時初始化。3.page指令的()屬性用于引用需要的包或類(A)extends(B)import(C)isErrorPage(D)language4.在myjsp.jsp中,關于下面的代碼說法錯誤的是:()<%@pagelanguage="java"import="java.util.*"errorPage="error.jsp"isErrorPage="false"%>(A)該頁面可以使用exception對象(B)該頁面發生異常會轉向error.jsp(C)存在errorPage屬性時,isErrorPage是必須的屬性值且一定為false(D)error.jsp頁面一定要有isErrorPage屬性且值為true;5.下列標簽使用正確的是:(多選)()(A)<jsp:forwardpage="XXX.jsp"><jsp:paramname="xxx"value="xxx"/></jsp:forward>(B)<jsp:forwardpage="XXX.jsp"></jsp:forward>(C)<jsp:forwardpage="XXX.jsp"/>(D)<jsp:forwardpage="XXX.jsp"/><jsp:paramname="xxx"value="xxx"/></jsp:forward>6.在input.jsp中存在如下的代碼:<inputtype="text"name="stuid"value="1001"/>則在display.jsp中可以使用可以使用哪些語句可以獲取stuid的值:(多選)()(A) <%=request.getPramater("stuid")%>(B) ${param.stuid}(C) ${param[stuid]}(D) ${param["stuid"]}7.標簽文件的擴展名是:(單選)()(A)tld (B)tag (C)dtd (D)xml8.對于<jsp:param>動作,描述正確的是()(選擇兩項)(A)<jsp:param>是<jsp:include>、<jsp:forward>標記的子標記(B)如果有aa.jsp代碼:<jsp:forwardpage="next.jsp"> <jsp:paramname="name"value="jb-aptech"/></jsp:forward>則在next.jsp中可以使用request.getParameter(“name”);把屬性name的值取出來(C)如果有aa.jsp代碼:<jsp:forwardpage="next.jsp"> <jsp:paramname="name"value="jb-aptech"/></jsp:forward>則在next.jsp中可以使用request.geAttribute(“name”);把屬性name的值取出來(D)如果<jsp:param>標記不放在<jsp:forward>標記內,也就是不作為<jsp:forwrd>的子標記,則使用瀏覽器查看時會顯示錯誤頁面。9.Jsp頁面由靜態內容、注釋、表達式、聲明和()組成選三項(A)指令 (B)EL語言(C)Scriptlet(D)動作10.jsp指令包括()選三項(A)page指令(B)taglib指令(C)import指令(D)include指令11.下列哪一種不是JSP中的注釋符()。(A)<!--注釋內容-->(B)/*注釋內容*/(C)//注釋內容(D)/**注釋內容**/12.在HTML標記中有兩種注釋方式:<!注釋內容>和()。(A).<!--注釋內容-->(B).//注釋內容(C)./*注釋內容*/(D)./**注釋內容**/四、問答題1.請說出<%@pageinclude%>、<%@include%>、<jsp:include>三者的區別?2.JSP初學者應該注意哪些問題?3.JSP中有哪五個編譯器?4.使用預定義標識符,需要注意哪幾點?5.使用標識符<%%>可以進行哪幾個方面的應用?五、程序題1.指出下面代碼的錯誤之處:<html><head></head><body><%@pagelanguage="java"%><%!inta1=8;stings1="Hello";out.println(s1);%></body></html>2.<%@Aimport="java.util.*"%><html><body><%!DatetheDate=newDate();{System.out.rintln("IngetDate()method");B}%>Hello!ThetimeisnowC</body></html>在以上程序中填寫適當的代碼使程序完成如圖3-5所示的效果。在A處填寫JSP指令。在B處填寫返回當前日期的代碼。在C處填寫輸出當前日期的代碼。3.<%@pagecontentType="A"language="java"%><html><title>使用數組來顯示橫條圖</title><body><%Ba[]={13,27,21,17,39};for(inti=0;i<=4;i++){out.print("第"+i+"個元素");out.print("<imgsrc=bar.jpgwidth="+C*5+"height=10><p>");}%></body></html>根據圖4-14所示實例效果,將程序補充完整:在A處填寫解決亂碼的代碼。在B處填寫變量數組的類型。在C處填寫實現效果所用代碼。<%!intcaculate(intx,intn){intvalue=0;if(n>=1){inta=1;if(D)//計算X的n次方for(inti=1;i<=n;i++)a=a*x;n=n-1;//遞歸調用value=a+E;}elsevalue=value+1;F;}%><%out.print(caculate(5,3));%>本程序是一個遞歸調用過程,其結果等于156,將程序補充完整:在D處填寫if語句的判斷條件。在E處填寫累加的變量。在F處填寫返回值。3.3.2一、填空題1.輸出注釋隱藏注釋2.JSP容器JSP注釋指令元素腳本元素動作元素3.Page指令Include指令Taglib指令4.聲明、表達式和腳本程序5.輸出注釋隱藏注釋6.輸出注釋隱藏注釋7.隱藏注釋8.聲明9.腳本程序10.Include指令Taglib指令11.<jsp;include><jsp;param><jsp:forward><jsp:useBean><jsp:getProperty><jsp:setProperty><jsp:plugin>12.<jsp;include>13.<jsp:forward>14.<jsp;param>15.<jsp:plugin>16.<jsp:useBean>17.<jsp:setProperty>18.<jsp:getProperty>19.text/htmlISO-8859-1二、判斷題1.(F)2.(T)3.(T)4.(T)5.(F)6.(T)7.(F)8.(F)9.(F)10.(T)11.(F)12.(F)13.(T)14.(F)15.(F)16.(F)17.(T)18.(T)19.(F)20.(F)21.(F)22.(T)三、選擇題1.(D)2.(C)3.(B)4.(A)5.(AC)6.(ABD)7.(A)8.(AB)9.(ACD)10.(ABD)11.(A)12.(A)四、問答題1.<%@pageinclude%>和<%@include%>只能包含靜態文件(2分),而<jsp:include>既可以包含靜態文件,又可以包含動態文件。(2分)如果文件僅是靜態文件,那么這種包含僅僅是包包含文件的內容加到JSP文件中去,(2分)而如果這個文件是動態的,那么這個被包含文件也會被JSP編譯器執行。(2分)2.(1)Java是大小寫敏感的。(2)Java調用過程都是要加括號的。(3)JSP中截取變量的方法單一。(4)Jscript的函數在JSP中不能應用。3.(1)編譯器指令<%@編譯器指令%>(2)預定義<%!預定義%>。(3)運算式<%=運算式%>。(4)程序代碼<%程序代碼>。(5)注釋<%--注釋--%>4.(1)不使用”!”,直接以<%%>標識進行賦值也可以。(2)賦值后要加“;”號。(3)可以進行多個變量賦值。(4)不可以寫賦值外的程序語句。5.(1)聲明將要用到的變量或方法。(2)編寫JSP表達式。(3)使用任何隱含的對象和任何用<jsp:useBean>聲明過的對象(4)編寫JSP語句(如果你在使用Java語言,這些語句必須遵從JavaLanguageSpecification)。五、程序題1.答案:語句out.println(s1)不能寫在聲明的代碼之中2.pagereturntheDate<%=theDate%>3.text/html;charset=gb2312inta[i]n>=1calculate(x,n)returnvalue第4章JSP內置對象4.1經驗必須從解釋會話跟蹤的重要性以及各公司如何利用它來提高知名度擴大銷售開始上這節課。還可以通過討論B2C來講解這個概念。隨著世界各地的消費者都開始嘗試網上購物,各公司越來越看重網站來爭取顧客。一種能幫助公司提高知名度的方法就是在網站中使用會話跟蹤。論述用來實現會話跟蹤的各種技術的優缺點。有關cookie的幾個需要記住的要點:1. Cookie僅為域創建。Cookie的保存方法與所使用的瀏覽器和操作系統有關。例如,如果你使用的是WindowsNT服務器或工作站,那么cookie的創建和保存都將告之用戶并根據用戶的選擇進行。教師還可以顯示給學生看cookie是如何組織的。2. Cookie不會破壞客戶計算機內的文件。然而用戶仍然有權在瀏覽器中設置“禁止cookie”來拒絕接受cookie。但是,不接受cookie可能同時終止了某些在線服務功能。最后需要指出的是,拒絕cookie并不能隱藏用戶線索,只是增加了服務器跟蹤用戶的難度。3. 大多數cookie在瀏覽器關閉后被銷毀。但也可以在cookie創建時指定它的失效日期,這種指定了生存期的cookie稱為“持久cookie”。隱藏的表單字段:隱藏的表單字段用來跟蹤會話。它是指在用戶界面中包含幾個隱藏的字段,這些字段的值在提交請求時發送給服務器。對于接受請求的服務器而言,接受的值是來自普通字段還是隱藏字段沒有什么差別。大多數主流瀏覽器都支持隱藏的表單字段,它主要針對沒有注冊或沒有登錄的客戶使用。但是,這項技術僅適合在連續動態生成的表單中使用。此技術不可與靜態文檔、書簽文檔和電子郵件文檔一起使用。4.2重點難點突破詳細討論購物車的例子來解釋會話跟蹤的概念。下面是兩個會話跟蹤的實現例子:(1)在你再訪問網站的同時即啟動消息服務,自動保存和顯示用戶名和密碼。(2)一些網站還會跟蹤你的電子郵件id,自動發送給你免費訂閱的公司時事資訊。4.3習題與解答4.3.1單元填空題1.JSP中有9種內置對象,它們分別是:、、response對象、pageContext對象、session對、applicationt對象、page對象、config對象和exception對象。2.Request對象可以使用____方法獲取表單提交的信息。3.客戶端向服務器端提交數據的方式通常有兩種:一種是提交方式;另一種是提交方式。4.在JSP內置對象中,與請求相關的對象是。5.被封裝成javax.servlet.JspWriter接口,它用來向客戶端輸出內容。6.Out對象中用來輸出各種類型數據并換行的方法是。7.Out對象中用來輸出各種類型數據但不換行的方法是。8.Out對象中用來輸出一個換行符的方法是。9.Out對象中用來關閉輸出流的方法是。10.Out對象中用來輸出緩沖區里的數據的方法是。11.Out對象中用來清除緩沖區里的數據,并把數據寫到客戶端的方法是。12.Out對象中用來清除緩沖區里的數據,但不寫到客戶端的方法是。13.Out對象中用來獲得緩沖區大小的方法是。14.Out對象中用來獲得緩沖區剩余空間大小的方法是。15.Out對象中用來判斷緩沖區是否自動刷新的方法是。16.Request對象中用來獲得服務器名字的方法是。17.Request對象中用來獲得服務器的端口號的方法是。18.Request對象中用來獲得客戶端的IP地址的方法是。19.Request對象中用來獲得客戶端的計算機名字的方法是方法。20.Request對象中用來獲得客戶端向服務器端傳送數據的協議名稱的方法是。21.是同應答相關的HttpServletResponse類的一個對象,它封裝了服務器對客戶端的響應,然后被送到客戶端以響應客戶請求。22.Response對象中用來動態改變contentType屬性的方法是。23.Response對象中用來把響應發送到另一個指定的位置進行處理的方法是。24.Response對象中用來設置指定名字的HTTP文件頭值的方法是。25.封裝了屬于客戶會話的所有信息。26.Session對象中用來設置指定名字的屬性的方法是。27.Session對象中用來獲得指定名字的屬性的方法是。28.用于多個程序或者多個用戶之間共享數據。29.提供了對每一個給定的服務器小程序及JSP頁面的javax.servlet..ServletConfig對象的訪問,該對象封裝了初始化參數以及一些實用方法。30.是可以從JSP腳本程序和表達式中獲得的一個內置對象,它是Object類的一個實例。31.提供了對JSP頁面內所在對象及名字空間的訪問。32.是java.lang.Throwable類的一個實例,它指的是運行時的異常。33.俗稱“小甜餅”,是一種Web服務器通過瀏覽器在訪問者的硬盤上存儲信息的手段。35.應用cookie保存記錄的基本操作包括、和。36.在JSP中如果要將封裝好的cookie對象傳送到客戶端,可使用response對象的方法。37.讀取保存到客戶端的cookie,可使用response對象的。二、判斷題1.Application的生命周期比Session的生命周期長()。2.Request的生命周期比Session的生命周期長()。3.當request對象獲取客戶端提交的漢字字符時,會出現亂碼問題,解決方式是改變編碼格式為UTF8。()4.使用Request對象的getRemoteAddr()方法可以獲取客戶端的IP地址。()5.通過Post方法提交數據,會將所有數據顯示在URL地址的后面。()6.Cookie文件是存放在服務器端的。()7.在設置cookie的最大存在時間時,可以設置為負值和零。()8.JSP內置對象是指不用聲明就可以在JSP頁面的腳本部分使用的對象。()9.Out對象的作用范圍是Application。()10.Out對象的clearBuffer()方法用來清除緩沖區里的數據,但并不把數據寫到客戶端。()11.Out對象的cle

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論