版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1章JavaWeb開發(fā)環(huán)境的構(gòu)建學(xué)習(xí)目的與要求本章對開發(fā)工具與環(huán)境配置進(jìn)行簡要介紹。通過本章的學(xué)習(xí),掌握使用IntelliJIDEA平臺開發(fā)JavaWeb應(yīng)用的基本步驟?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.1構(gòu)建開發(fā)環(huán)境1.2使用IntelliJIDEA開發(fā)Web應(yīng)用1.1.1開發(fā)工具1.Java開發(fā)工具包(JDK)JSP引擎需要Java語言的核心庫和相應(yīng)編譯器,在安裝JSP引擎之前,需要安裝Java標(biāo)準(zhǔn)版(Java
SE)提供的開發(fā)工具包JDK。登錄/technetwork/java,根據(jù)操作系統(tǒng)的位數(shù),下載相應(yīng)的JDK,例如64位的系統(tǒng)使用64位的JDK。本書采用的JDK是jdk-18_windows-x64_bin.exe?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.1.1開發(fā)工具2.JSP引擎運行包含JSP頁面的Web項目還需要一個支持JSP的Web服務(wù)軟件,該軟件也稱作JSP引擎或JSP容器,通常將安裝了JSP引擎的計算機(jī)稱為一個支持JSP的Web服務(wù)器。目前,比較常用的JSP引擎包括Tomcat,JRun,Resin,WebSphere,WebLogic等,本書采用的是Tomcat
10.0。登錄Apache
軟件基金會的官方網(wǎng)站http://jakarta.A/tomcat,下載Tomcat10.0的免安裝版(本書采用apache-tomcat-10.0.23-windows-x64.zip)。登錄網(wǎng)站后,首先在Download里選擇Tomcat
10.0,然后在Binary
Distributions的Core中選擇zip即可?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.1.1開發(fā)工具3.IntelliJ
IDEA為了提高開發(fā)效率,通常需要安裝IDE(集成開發(fā)環(huán)境)工具,在本書中使用的IDE工具是IntelliJ
IDEA。IntelliJ
IDEA是Java編程語言的集成開發(fā)環(huán)境,可用于開發(fā)JSP程序的IDE工具。登錄/idea/,根據(jù)操作系統(tǒng)下載相應(yīng)的IntelliJ
IDEA。本書采用的是WindowsUltimate版ideaIU-2022.2.1?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.1.2工具集成《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
如果你的電腦上,已經(jīng)安裝了IntelliJIDEA(本書使用的是ideaIU-2022.2.1),那么你可以使用IntelliJIDEA便捷地構(gòu)建JavaWeb應(yīng)用。雖然IntelliJIDEA自帶OpenJDK,但建議在使用前事先安裝并配置JDK和Web服務(wù)器。1.安裝JDK《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
可以登錄Oracle官方網(wǎng)站/technetwork/java,根據(jù)操作系統(tǒng)的位數(shù),下載相應(yīng)的JDK,例如64位的系統(tǒng)使用64位的JDK。本書采用的JDK是jdk-18_windows-x64_bin.exe。JDK18的安裝程序默認(rèn)將常用的開發(fā)工具(包括java.exe、javac.exe、javaw.exe以及jshell.exe)自動復(fù)制到C:\ProgramFiles\CommonFiles\Oracle\Java\javapath目錄中,并將該目錄自動添加到Path環(huán)境變量中。因此,如果僅需要使用這些常用的開發(fā)工具,不再需要配置環(huán)境變量。2.Tomcat的安裝《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目前,比較常用的Web服務(wù)器包括Tomcat,JRun,Resin,WebSphere,WebLogic等,本書采用的是Tomcat10.0。登錄Apache
軟件基金會的官方網(wǎng)站http://jakarta.A/tomcat,下載Tomcat10.0的免安裝版(本書采用apache-tomcat-10.0.23-windows-x64.zip)。登錄網(wǎng)站后,首先在Download里選擇Tomcat10,然后在BinaryDistributions的Core中選擇相應(yīng)版本即可下載。將下載的apache-tomcat-10.0.23-windows-x64.zip解壓到某個目錄下即可完成安裝。3.集成Tomcat《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
啟動IntelliJIDEA,選擇File/Settings菜單項,在彈出的對話框中選擇Build,Execution,Deployment/ApplicationServers命令。在彈出的窗口中,選擇+/TomcatServer菜單項,彈出如圖1.6所示的TomcatServer界面,在此選擇Tomcat目錄。目錄《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.1構(gòu)建開發(fā)環(huán)境1.2使用IntelliJIDEA開發(fā)Web應(yīng)用1.2.1JSP運行原理1.JSP文件一個JSP文件中可以有普通的HTML標(biāo)記、JSP規(guī)定的標(biāo)記以及Java程序。JSP文件的擴(kuò)展名是.jsp,文件名字必須符合標(biāo)識符規(guī)定,即名字可以由字母、下劃線、美元符號和數(shù)字組成。2.JSP運行原理當(dāng)Web服務(wù)器上的一個JSP頁面第一次被客戶端請求執(zhí)行時,Web服務(wù)器上的JSP引擎首先將JSP文件轉(zhuǎn)譯成一個Java文件,并將Java文件編譯成字節(jié)碼文件,字節(jié)碼文件在服務(wù)器端創(chuàng)建一個Servlet對象,然后執(zhí)行該Servlet對象,同時發(fā)送一個HTML頁面到客戶端響應(yīng)客戶端的請求。當(dāng)這個JSP頁面再次被請求時,JSP引擎為每個客戶端啟動一個線程并直接執(zhí)行對應(yīng)的Servlet對象響應(yīng)客戶端的請求,這也是JSP響應(yīng)速度比較快的原因之一?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.2.2一個簡單的Web應(yīng)用使用IntelliJIDEA開發(fā)一個Web應(yīng)用需要如下三個步驟: 創(chuàng)建Web項目 添加Tomcat依賴 創(chuàng)建JSP文件 發(fā)布項目到Tomcat并運行《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.創(chuàng)建Web項目首先,使用IntelliJIDEA創(chuàng)建一個名為ch1的項目。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.創(chuàng)建Web項目其次,右擊項目名稱ch1,選擇AddFrameWorkSupport菜單項,給項目ch1添加WebApplication。(如果找不到AddFrameWorkSupport,選中模塊名雙擊Shift鍵->Actions選項中打開AddFrameWorkSupport)《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.添加Tomcat依賴ch1項目創(chuàng)建完成后,選擇File->Project
Structure菜單項,打開Project
Structure界面?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.創(chuàng)建JSP文件(1)選中ch1項目的web節(jié)點,右擊,在打開的快捷菜單中,選擇“New”—>“JSP/JSPX”,打開“Create
JSP/JSPX
page”對話框,如圖1.11所示。在該對話框的“Name”文本框中輸入文件名myFirst.jsp,按下“Enter”回車鍵即可完成JSP文件的創(chuàng)建。(2)JSP創(chuàng)建完成后,在ch1項目的web節(jié)點下,自動添加一個名稱為myFirst.jsp的JSP文件,同時,IntelliJ
IDEA會自動將JSP文件在右側(cè)的編輯框中打開。(3)修改myFirst.jsp文件中的默認(rèn)代碼。(4)將編輯好的JSP頁面保存(ctrl+s)(IntelliJIDEA會自動保存),至此完成一個簡單的JSP程序創(chuàng)建?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
4.發(fā)布項目到Tomcat并運行在IntelliJIDEA中第一次運行Java
Web應(yīng)用時,需要將應(yīng)用發(fā)布到Tomcat,具體步驟如下。在IntelliJ
IDEA主界面中,單擊如圖1.12所示的白色向下三角符號,選擇Edit
Configurations菜單項,打開如圖1.13所示的服務(wù)器選擇界面?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
4.發(fā)布項目到Tomcat并運行在圖1.13中,選擇Tomcat
Server的Local選項打開Deployment界面,如圖1.14所示。按照圖1.14的操作順序,打開如圖1.15所示的界面,并修改應(yīng)用的上下文路徑?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
4.發(fā)布項目到Tomcat并運行單擊圖1.15中的OK按鈕,即可將項目ch1發(fā)布到Tomcat。發(fā)布成功后,回到如圖1.16所示的IntelliJ
IDEA主界面。單擊圖1.16中的三角符號啟動Tomcat,即可運行Web應(yīng)用ch1,如圖1.17所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
1.2.3實踐環(huán)節(jié)——使用IntelliJIDEA開發(fā)Web應(yīng)用1.創(chuàng)建一個名稱為sencondTest的項目。2.在sencondTest項目中創(chuàng)建一個名稱為yourFirst.jsp文件,在JSP頁面中顯示“不錯!不錯!自己能創(chuàng)建JSP文件了,并且可以發(fā)布運行了”。3.發(fā)布并運行sencondTest項目。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
本章小結(jié)本章主要介紹了Java
Web集成開發(fā)環(huán)境的構(gòu)建,用到的工具有:JDK、Tomcat和IntelliJ
IDEA。它們的安裝順序由先到后依次是JDK、Tomcat、IntelliJ
IDEA。Tomcat
是一個支持JSP的Web服務(wù)軟件,該軟件也稱作JSP引擎或JSP容器。JSP引擎是支持JSP程序的Web容器,負(fù)責(zé)運行JSP程序,并將有關(guān)結(jié)果發(fā)送給客戶端。目前流行的JSP引擎有:Tomcat、Resin、JRun、WebSphere、WebLogic等等,本書使用的是Tomcat服務(wù)器。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
第2章JSP語法學(xué)習(xí)目的與要求本章主要介紹JSP腳本元素、JSP指令標(biāo)記和JSP動作標(biāo)記。通過本章的學(xué)習(xí),理解JSP頁面的組成部分,掌握J(rèn)SP語法,能夠使用JSP開發(fā)Web頁面?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.1JSP頁面的基本構(gòu)成2.2JSP腳本元素2.3JSP指令標(biāo)記2.4JSP動作標(biāo)記2.1.1一個JSP頁面在HTML靜態(tài)頁面文件中加入和Java相關(guān)的動態(tài)元素,就構(gòu)成了一個JSP頁面。一個JSP頁面通常由4種基本元素組成:1.普通的HTML標(biāo)記。2.JSP注釋。3.Java腳本元素,包括聲明、Java程序片和Java表達(dá)式。4.JSP標(biāo)記,如指令標(biāo)記、動作標(biāo)記和自定義標(biāo)記等?!纠?-1】根據(jù)example2_1.jsp代碼中的注釋,識別JSP頁面的基本元素?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.1.2JSP頁面注釋JSP頁面中常見的注釋有以下兩種:1.HTML注釋格式:<!--HTML注釋-->在標(biāo)記符“<!--”和“-->”之間加入注釋內(nèi)容,就構(gòu)成了HTML注釋。JSP引擎對于HTML注釋也要進(jìn)行處理,即不將它看作是注釋,如果其中有JSP代碼,也將被JSP引擎處理。JSP引擎將處理之后的HTML注釋交給客戶端,通過瀏覽器查看JSP源文件時,能夠看到HTML注釋。2.JSP注釋格式:<%--JSP注釋--%>在標(biāo)記符“<%--”和“--%>”之間加入注釋內(nèi)容,就構(gòu)成了JSP注釋。JSP引擎將JSP注釋當(dāng)作是真正的注釋,在編譯JSP頁面時忽略這部分代碼。因此,通過瀏覽器查看JSP源文件時,無法看到JSP注釋?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.1.3實踐環(huán)節(jié)——識別JSP頁面元素<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><!--學(xué)習(xí)JSP頁面的基本構(gòu)成--><%! Stringcontent="JSP頁面基本構(gòu)成:";%><html><head><metacharset="UTF-8"><title>shijian2_1.jsp</title></head><body><%content=content+"HTML標(biāo)記、JSP注釋、JSP標(biāo)記以及Java腳本元素";%><%=content%></body></html>《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.1JSP頁面的基本構(gòu)成2.2JSP腳本元素2.3JSP指令標(biāo)記2.4JSP動作標(biāo)記2.2.1Java程序片在標(biāo)記符“<%”和“%>”之間插入的Java代碼被稱作JSP頁面的Java程序片。Java程序片格式如下:<%Java代碼%>一個JSP頁面可以有任意段Java程序片,這些程序片將被JSP引擎(本書中指Tomcat服務(wù)器)按順序執(zhí)行。在一個程序片中聲明的變量稱為JSP頁面的局部變量,它們在JSP頁面后繼的所有程序片以及表達(dá)式內(nèi)都有效。當(dāng)多個客戶請求一個JSP頁面時,JSP引擎為每個客戶啟動一個線程,不同的線程會分別執(zhí)行該JSP頁面中的Java程序片,程序片中的局部變量會在不同的線程中被分配不同的內(nèi)存空間。因此,一個客戶對JSP頁面局部變量操作的結(jié)果,不會影響到其他客戶。Java程序片執(zhí)行原理如圖2.1所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.2.1Java程序片《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
JSP頁面Java程序片局部變量客戶1線程客戶2線程客戶3線程JSP引擎Java程序片局部變量Java程序片局部變量Java程序片局部變量內(nèi)存圖2.1Java程序片執(zhí)行原理【例2-2】編寫1個JSP頁面example2_2.jsp,頁面中存在一段Java程序片,該程序片內(nèi)聲明了一個整型的局部變量n,初始值為0。2.2.2成員變量與方法的聲明<%!變量或方法定義%>在標(biāo)記符“<%!”和“%>”之間聲明的變量被稱作JSP頁面的成員變量,它們可以是Java
語言允許的任何數(shù)據(jù)類型,例如:<%!intn=0;Datedate;%>成員變量在整個JSP頁面內(nèi)都有效(與書寫位置無關(guān)),因為JSP引擎將JSP頁面轉(zhuǎn)譯成Java
文件時,將這些變量作為類的成員變量,這些變量的內(nèi)存空間直到服務(wù)器關(guān)閉才釋放。因此,多個用戶共享JSP頁面的成員變量。任何用戶對JSP頁面成員變量操作的結(jié)果,都會影響到其他用戶?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.2.2成員變量與方法的聲明在標(biāo)記符“<%!”和“%>”之間聲明的方法被稱作JSP頁面的成員方法,該方法在整個JSP頁面內(nèi)有效,但是該方法內(nèi)定義的變量僅在該方法內(nèi)有效?!纠?-3】編寫1個JSP頁面example2_3.jsp,頁面中聲明一個成員變量n(初始值為0)和方法add(求兩個整數(shù)的和)。另外,頁面中還有一段Java程序片,在程序片中聲明一個局部變量m,并且對成員變量n和局部變量m分別進(jìn)行自加?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.2.3Java表達(dá)式在標(biāo)記符“<%=”和“%>”之間可以插入一個表達(dá)式,這個表達(dá)式必須能求值。表達(dá)式的值由Web服務(wù)器負(fù)責(zé)計算,并將計算結(jié)果用字符串形式發(fā)送到客戶端,作為HTML頁面的內(nèi)容顯示。Java表達(dá)式中可以有算術(shù)表達(dá)式、邏輯表達(dá)式或條件表達(dá)式等。但使用Java表達(dá)式時,應(yīng)該注意以下兩點:1.不可在“<%=”和“%>”之間插入語句,即:輸入的內(nèi)容末尾不能以分號結(jié)束。2.“<%=”是一個完整的符號,“<%”和“=”之間不能有空格?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.2.4實踐環(huán)節(jié)——在JSP頁面輸出英文字母表編寫1個JSP頁面,在JSP頁面中使用Java程序片輸出26個小寫的英文字母表?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.2.5實踐環(huán)節(jié)——網(wǎng)站訪問量的統(tǒng)計利用成員變量被所有客戶共享這一性質(zhì),實現(xiàn)一個簡單的計數(shù)器,頁面效果如圖2.3所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.2.6實踐環(huán)節(jié)——打印表格在瀏覽器中輸出大小為15*10表格,頁面效果如圖2.4所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.1JSP頁面的基本構(gòu)成2.2JSP腳本元素2.3JSP指令標(biāo)記2.4JSP動作標(biāo)記2.3.1page指令page指令標(biāo)記用來定義整個JSP頁面的一些屬性和這些屬性的值??梢杂靡粋€page指令指定多個屬性的值,也可以使用多個page指令分別為每個屬性指定值。page指令的格式如下:<%@page
屬性1="屬性1的值"屬性2="屬性2的值"…%>或者<%@page
屬性1="屬性1的值"%><%@page
屬性2="屬性2的值"%><%@page
屬性3="屬性3的值"%>….<%@page
屬性n="屬性n的值"%>page指令的主要屬性有contentType、import、language和pageEncoding等。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.3.1page指令JSP頁面使用page指令標(biāo)記只能為contentType屬性指定一個值,用來確定響應(yīng)的MIME類型(MIME類型就是設(shè)定某種文件用對應(yīng)的一種應(yīng)用程序來打開的方式類型)。當(dāng)用戶請求一個JSP頁面時,服務(wù)器會告訴瀏覽器使用contentType屬性指定的MIME類型來解釋執(zhí)行所接收到的服務(wù)器為之響應(yīng)信息。例如,瀏覽器使用word應(yīng)用程序打開用戶請求時,可以將contentType屬性值設(shè)置為:<%@page
contentType="application/msword;charset=UTF-8"%>常見的MIME類型有:text/html(HTML解析器,所謂的網(wǎng)頁形式)、text/plain(普通文本)、application/pdf(PDF文檔)、application/msword(word應(yīng)用程序)、image/jpeg(JPEG圖形)、image/png(PNG圖像)、image/gif(GIF圖形)以及application/vnd.ms-powerpoint(powerpoint應(yīng)用程序)?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.3.1page指令2.屬性importJSP頁面使用page指令標(biāo)記可為import屬性指定多個值,import屬性的作用是為JSP頁面引入包中的類,以便在JSP頁面的程序片、變量及方法聲明或表達(dá)式中使用包中的類。3.屬性languagelanguage屬性用來指定JSP頁面使用的腳本語言,目前該屬性的值只能取"java"。4.屬性pageEncodingcontentType中的charset是指服務(wù)器發(fā)送給客戶瀏覽器時所見到的網(wǎng)頁內(nèi)容的編碼;pageEncoding是指JSP文件自身存儲時所用的編碼。在JSP規(guī)范中,如果pageEncoding屬性存在,那么JSP頁面的字符編碼方式就由pageEncoding決定,否則就由contentType屬性中的charset決定,如果charset也不存在,JSP頁面的字符編碼方式就采用默認(rèn)的ISO-8859-1?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.3.2include指令include指令標(biāo)記的作用就是將JSP文件、HTML網(wǎng)頁文件或其他文本文件靜態(tài)嵌入到當(dāng)前的JSP網(wǎng)頁中,該指令的語法格式如下:<%@includefile="文件的URL"%>所謂靜態(tài)嵌入就是“先包含后處理”,在編譯階段完成對文件的嵌入。即:先將當(dāng)前JSP頁面與要嵌入的文件合并成一個新的JSP頁面,然后再由JSP引擎將新頁面轉(zhuǎn)化為Java文件處理并運行?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.3.2include指令【例2-4】編寫兩個JSP頁面example2_4.jsp和example2_4_1.jsp,在example2_4.jsp頁面中使用include指令標(biāo)記靜態(tài)嵌入example2_4_1.jsp頁面,訪問example2_4.jsp頁面,運行效果如圖2.6所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
example2_4.jspexample2_4_1.jspexample2_4.jspexample2_4_1.jspexample2_4_jsp.java圖2.6靜態(tài)嵌入的原理2.3.3實踐環(huán)節(jié)——制作導(dǎo)航欄編寫3個JSP頁面index.jsp、main.jsp和head.jsp,在index.jsp和main.jsp頁面中分別使用include指令靜態(tài)嵌入head.jsp(導(dǎo)航欄)。導(dǎo)航欄head.jsp的運行效果如圖2.7所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
目錄《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.1JSP頁面的基本構(gòu)成2.2JSP腳本元素2.3JSP指令標(biāo)記2.4JSP動作標(biāo)記2.4JSP動作標(biāo)記常用的JSP動作標(biāo)記有include、forward、param、useBean、GetProperty和setProperty。useBean、GetProperty和setProperty將在本書的第4章介紹?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.4.1include動作標(biāo)記動作標(biāo)記include的作用是將JSP文件、HTML網(wǎng)頁文件或其他文本文件動態(tài)嵌入到當(dāng)前的JSP網(wǎng)頁中,該指令的語法有以下兩種格式:<jsp:includepage="文件的URL"/>或<jsp:includepage="文件的URL">
子標(biāo)記<jsp:include/>當(dāng)動作標(biāo)記include不需要子標(biāo)記時,使用上述第一種形式?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.4.1include動作標(biāo)記所謂動態(tài)嵌入就是“先處理后包含”,在運行階段完成對文件的嵌入。即:在將JSP頁面轉(zhuǎn)譯成Java文件時,并不合并兩個頁面;而是在Java文件的字解碼文件被加載并執(zhí)行時,才去處理include動作標(biāo)記中引入的文件。與靜態(tài)嵌入方式相比,動態(tài)嵌入的執(zhí)行速度稍慢,但是靈活性較高?!纠?-5】編寫兩個JSP頁面example2_5.jsp和example2_5_1.jsp,在example2_5.jsp頁面中使用include標(biāo)記動態(tài)嵌入example2_5_1.jsp頁面。運行example2_5.jsp頁面。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.4.2forward動作標(biāo)記動作標(biāo)記forward的作用是:從該標(biāo)記出現(xiàn)處停止當(dāng)前JSP頁面的繼續(xù)執(zhí)行,從而轉(zhuǎn)向執(zhí)行forward動作標(biāo)記中page屬性值指定的JSP頁面。該標(biāo)記有兩種格式:<jsp:forwardpage="文件的URL"/>或<jsp:forwardpage="文件的URL">
子標(biāo)記</jsp:forward>當(dāng)動作標(biāo)記forward不需要子標(biāo)記時,使用上述第一種形式?!纠?-6】編寫3個JSP頁面example2_6.jsp、oddNumber.jsp和evenNumbers.jsp。在example2_6.jsp頁面中隨機(jī)獲取0~10之間的整數(shù),該數(shù)為偶數(shù)時轉(zhuǎn)向頁面evenNumbers.jsp,否則轉(zhuǎn)向頁面oddNumber.jsp。首先訪問example2_6.jsp頁面。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.4.3param動作標(biāo)記動作標(biāo)記param不能獨立使用,但可以作為include、forward動作標(biāo)記的子標(biāo)記來使用,該標(biāo)記以“名字-值”對的形式為對應(yīng)頁面?zhèn)鬟f參數(shù)。該標(biāo)記的格式為:<jsp:父標(biāo)記page="接收參數(shù)頁面的URL">
<jsp:paramname="參數(shù)名"value="參數(shù)值"/></jsp:父標(biāo)記>接收參數(shù)的頁面可以使用內(nèi)置對象request調(diào)用getParameter("參數(shù)名")方法獲取動作標(biāo)記param傳遞過來的參數(shù)值,內(nèi)置對象將在本書第3章介紹。【例2-7】編寫兩個頁面example2_7.jsp和computer.jsp,在頁面example2_7.jsp中使用include動作標(biāo)記動態(tài)包含文件computer.jsp,并向它傳遞一個矩形的長和寬;computer.jsp收到參數(shù)后,計算矩形的面積,并顯示結(jié)果。運行example2_7.jsp頁面?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.4.4實踐環(huán)節(jié)——include和param動作標(biāo)記的應(yīng)用編寫3個JSP頁面:input.jsp、first.jsp和second.jsp,將3個JSP文件保存在同一個Web服務(wù)目錄中,input.jsp使用include動作標(biāo)記加載first.jsp和second.jsp頁面。first.jsp頁面可以畫出一個表格,second.jsp頁面可以計算出兩個正整數(shù)的最大公約數(shù)。當(dāng)first.jsp被加載時獲取input.jsp頁面中include動作標(biāo)記的param子標(biāo)記提供的表格的行數(shù)和列數(shù),當(dāng)second.jsp被加載時獲取input.jsp頁面中include動作標(biāo)記的param子標(biāo)記提供的兩個正整數(shù)的值。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
2.4.5實踐環(huán)節(jié)——登錄驗證編寫3個JSP頁面:login.jsp、validate.jsp和success.jsp,login.jsp輸入用戶名與密碼信息,提交給validate.jsp進(jìn)行用戶驗證,如果驗證為合法用戶(用戶名:tom,密碼:jenny)則轉(zhuǎn)到(forward動作標(biāo)記)success.jsp頁面,否則轉(zhuǎn)到login.jsp頁面重新登錄?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
本章小結(jié)本章主要介紹了JSP頁面的組成、JSP腳本元素和JSP標(biāo)記。一個JSP頁面通常由普通的HTML標(biāo)記、JSP注釋、Java腳本元素以及JSP標(biāo)記組成。JSP腳本元素包括Java程序片、JSP頁面成員變量與方法的聲明、Java表達(dá)式。JSP標(biāo)記包括指令標(biāo)記和動作標(biāo)記。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
第3章JSP內(nèi)置對象學(xué)習(xí)目的與要求本章主要介紹request、response、out、session、application、pageContext、page、config和exception等內(nèi)置對象。通過本章的學(xué)習(xí),理解JSP內(nèi)置對象的含義,掌握J(rèn)SP內(nèi)置對象的使用方法?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
學(xué)習(xí)目的與要求《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.1request對象3.2response對象3.3out對象3.4session對象3.5application對象3.6pageContext對象3.7page對象3.8config對象3.9exception對象3.10JSP的4種作用域3.1request對象request對象的類型為jakarta.servlet.http.HttpServletRequest。當(dāng)客戶端請求一個JSP頁面時,JSP頁面所在的服務(wù)器將客戶端發(fā)出的所有請求信息封裝在內(nèi)置對象request中,因此使用該對象就可以獲取客戶端提交的信息。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.1.1常用方法《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
序
號方
法功
能
說
明1ObjectgetAttribute(Stringname)
返回指定屬性的屬性值2EnumerationgetAtrributeNames()
返回所有可用屬性名的枚舉3StringgetCharacterEncoding()
返回字符編碼方式4intgetContentLength()
返回請求體的字節(jié)數(shù)5StringgetContentType()
返回請求體的MIME類型6ServletInputStreamgetInputStream()返回請求體中一行的二進(jìn)制流7StringgetParameter(Stringname)返回name指定參數(shù)的參數(shù)值8EnumerationgetParameterNames()
返回可用參數(shù)名的枚舉9String[]getParameterValues(Stringname)
返回包含參數(shù)name的所有值的數(shù)組10StringgetProtochol()
返回請求用的協(xié)議類型及版本號11StringgetServerName()
返回接受請求的服務(wù)器主機(jī)名12intgetServerPort()返回服務(wù)器接受此請求所用的端口號13StringgetRemoteAddr()
返回發(fā)送此請求的客戶端IP地址14StringgetRemoteHost()
返回發(fā)送此請求的客戶端主機(jī)名15voidsetAttribute(Stringkey,Objectobj)
設(shè)置屬性的屬性值16StringgetRealPath(Stringpath)
返回一虛擬路徑的真實路徑3.1.1常用方法
StringgetParameter(Stringname)該方法以字符串的形式返回客戶端傳來的某個參數(shù)的值,該參數(shù)名由name指定?!纠?-1】調(diào)用方法getParameter(String
name)獲取表單信息
String[]getParameterValues(Stringname)該方法以字符串?dāng)?shù)組的形式返回客戶端向服務(wù)器端傳遞的指定參數(shù)名的所有值?!纠?-2】調(diào)用方法getParameterValues
(Stringname)獲取表單信息《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.1.2request對象存取數(shù)據(jù)request對象可以通過void
setAttribute(String
key,Objectobj)方法將參數(shù)obj指定的對象保存到request對象中,key為所保存的對象指定一個關(guān)鍵字。若保存的兩個對象關(guān)鍵字相同,則先保存的對象被清除。request對象可以通過Object
getAttribute(String
key)方法獲取請求域(如:forward轉(zhuǎn)發(fā))中的關(guān)鍵字為key的對象(屬性值)。在實際工程中,request對象經(jīng)常用于存儲、傳遞本次請求的處理結(jié)果?!纠?-3】編寫兩個JSP頁面example3_3.jsp和example3_3_1.jsp,在example3_3.jsp頁面中輸入一個整數(shù)提交給example3_3_1.jsp頁面求平方。當(dāng)輸入值非整數(shù)時,在example3_3_1.jsp頁面中使用request對象的setAttribute(String
key,Objectobj)方法將錯誤消息存儲到request對象中,同時使用forward標(biāo)記轉(zhuǎn)發(fā)到example3_3_1.jsp頁面并顯示錯誤消息?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.1.3中文亂碼問題如果在例3-1的example3_1.jsp頁面的文本框中輸入中文姓名,那么getValue.jsp頁面獲得的姓名可能是亂碼。如果出現(xiàn)中文亂碼,可以使用request對象的setCharacterEncoding(String
code)設(shè)置統(tǒng)一字符編碼,其中參數(shù)code以字符串形式傳入要設(shè)置的編碼格式,但這種方法僅對于提交方式是post的表單(表單默認(rèn)的提交方式是get)有效。例如:使用該方法解決例3-1中的getValue.jsp頁面出現(xiàn)的中文亂碼問題,需要完成兩件事:首先,將example3_1.jsp中的表單提交方式改為“post”,具體代碼如下:
<formaction="getValue.jsp"method="post">
其次,在getValue.jsp中獲取表單信息之前設(shè)置統(tǒng)一編碼,具體代碼如下:
request.setCharacterEncoding("UTF-8");《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.1.4實踐環(huán)節(jié)——獲取客戶端的基本信息編寫1個JSP頁面practice3_1.jsp,在該頁面中使用request的方法獲取客戶端的IP地址、客戶機(jī)名稱、服務(wù)器名稱以及服務(wù)器端口號。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
學(xué)習(xí)目的與要求《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.1request對象3.2response對象3.3out對象3.4session對象3.5application對象3.6pageContext對象3.7page對象3.8config對象3.9exception對象3.10JSP的4種作用域3.2response對象當(dāng)客戶端請求服務(wù)器的一個頁面時,會提交一個HTTP請求,服務(wù)器收到請求后,返回HTTP響應(yīng)。request對象對請求信息進(jìn)行封裝,與request對象對應(yīng)的對象是response對象。response對象的類型為jakarta.servlet.http.HttpServletResponse,對客戶端的請求做出動態(tài)響應(yīng)。動態(tài)響應(yīng)通常有:動態(tài)改變contentType屬性值、設(shè)置響應(yīng)表頭和response重定向?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.2.1動態(tài)改變contentType屬性值JSP頁面用page指令標(biāo)記設(shè)置了頁面的contentType屬性值,response對象按照此屬性值的方式對客戶端做出響應(yīng)。在page指令中只能為contentType屬性指定一個值。如果想動態(tài)改變contentType屬性值,換一種方式來響應(yīng)客戶端,可以讓response對象調(diào)用setContentType(String
s)方法來重新設(shè)置contentType的屬性值?!纠?-4】編寫1個JSP頁面example3_4.jsp,客戶端通過單擊頁面上的不同按鈕,可以改變頁面響應(yīng)的MIME類型。當(dāng)單擊“word”按鈕時,JSP頁面動態(tài)改變contentType的屬性值為application/msword,在內(nèi)置的瀏覽器中,啟用本地的word軟件來顯示當(dāng)前頁面內(nèi)容;當(dāng)單擊“excel”按鈕時,JSP頁面動態(tài)改變contentType的屬性值為application/vnd.ms-excel,瀏覽器啟用本地的excel軟件來顯示當(dāng)前頁面內(nèi)容。頁面效果如圖3.1(a)~3.1(c)所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.2.2設(shè)置響應(yīng)表頭response對象可以通過方法setHeader(String
name,String
value)設(shè)置指定名字的HTTP文件頭值,以此來操作HTTP文件頭。如果希望某頁面每3秒鐘刷新一次,那么在該頁面中添加如下代碼:response.setHeader("refresh","3");有時候希望從當(dāng)前頁面幾秒鐘后自動跳轉(zhuǎn)到另一個頁面。比如:打開one.jsp頁面3秒鐘后,自動跳轉(zhuǎn)到another.jsp頁面(one.jsp與another.jsp在同一個Web服務(wù)目錄下)。這該如何實現(xiàn)呢?只需要為one.jsp設(shè)置一個響應(yīng)頭即可,也就是在one.jsp頁面中添加如下代碼:response.setHeader("refresh","3;url=another.jsp");【例3-5】編寫1個JSP頁面example3_5.jsp,在該頁面中使用response對象設(shè)置一個響應(yīng)頭“refresh”,其值是“3”。那么用戶收到這個頭之后,該頁面會每3秒鐘刷新一次?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.2.3response重定向需要將客戶端引導(dǎo)至另一個頁面時,可以使用reponse對象的sendRedirect(String
url)方法實現(xiàn)客戶端的重定向。例如客戶端輸入的表單信息不完整或有誤時,應(yīng)該再次被重定向到輸入頁面?!纠?-6】編寫兩個JSP頁面login.jsp和validate.jsp,如果在頁面login.jsp中輸入正確的密碼“nihao2023”,單擊按鈕后提交給頁面validate.jsp,如果輸入不正確,重新定向到login.jsp頁面。先運行l(wèi)ogin.jsp頁面,頁面效果如圖3.2(a)~3.2(b)所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.2.4實踐環(huán)節(jié)——登錄驗證編寫3個JSP頁面login_1.jsp、server.jsp和loginSuccess.jsp。在頁面login_1.jsp中輸入用戶名和密碼,單擊“提交”按鈕將輸入的信息提交給頁面server.jsp。在server.jsp頁面中進(jìn)行登錄驗證:如果輸入正確(用戶名“zhangsan”,密碼“123”),提示“成功登錄,3秒鐘后進(jìn)入loginSuccess.jsp頁面”,如果輸入不正確,重新定向到login_1.jsp頁面。先運行l(wèi)ogin_1.jsp頁面,頁面運行效果如圖3.3(a)~3.3(c)所示。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
學(xué)習(xí)目的與要求《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.1request對象3.2response對象3.3out對象3.4session對象3.5application對象3.6pageContext對象3.7page對象3.8config對象3.9exception對象3.10JSP的4種作用域3.3out對象out對象的類型為jakarta.servlet.jsp.JspWriter,是一個輸出流,用來向客戶端瀏覽器輸出數(shù)據(jù)?!纠?-7】編寫1個頁面example3_7.jsp,在該頁面中使用out對象輸出信息?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
序
號方
法功
能
說
明1voidclear()
清除緩沖區(qū)的內(nèi)容2voidclearBuffer()清除緩沖區(qū)的當(dāng)前內(nèi)容3voidflush()
清空流4intgetBufferSize()
返回緩沖區(qū)字節(jié)數(shù),如不設(shè)緩沖區(qū)則返回05intgetRemaining()
返回緩沖區(qū)剩余大小6booleanisAutoFlush()返回緩沖區(qū)滿時,是自動清空還是拋出異常7voidclose()關(guān)閉輸出流8voidprint()
輸出各種數(shù)據(jù)類型9voidnewLine()
輸出一個換行符學(xué)習(xí)目的與要求《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.1request對象3.2response對象3.3out對象3.4session對象3.5application對象3.6pageContext對象3.7page對象3.8config對象3.9exception對象3.10JSP的4種作用域3.4session對象瀏覽器與Web服務(wù)器之間使用Http協(xié)議進(jìn)行通信。Http是一種無狀態(tài)協(xié)議,客戶端向服務(wù)器發(fā)出請求(request),服務(wù)器返回響應(yīng)(response),連接就被關(guān)閉了,在服務(wù)器端不保留連接的相關(guān)信息。所以服務(wù)器必須采取某種手段來記錄每個客戶端的連接信息。Web服務(wù)器可以使用內(nèi)置對象session來存放有關(guān)連接的信息,session對象的類型為jakarta.servlet.http.HttpSession。session對象指的是客戶端與服務(wù)器端的一次會話,從客戶端連到服務(wù)器端的一個Web應(yīng)用程序開始,直到客戶端與服務(wù)器端斷開為止?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.4.1session對象的IDWeb服務(wù)器會給每一個用戶自動創(chuàng)建一個session對象,為每個session對象分配一個唯一標(biāo)識的String類型的session
ID,這個ID用于區(qū)分其他用戶。這樣每個用戶都對應(yīng)著一個session對象,不同用戶的session對象互不相同。session對象調(diào)用getId()方法就可以獲取當(dāng)前session對象的ID?!纠?-8】編寫3個JSP頁面example3_8_1.jsp、example3_8_2.jsp和example3_8_3.jsp,其中,example3_8_2.jsp存放在目錄tom中,example3_8_3.jsp存放在目錄cat中。用戶首先訪問example3_8_1.jsp頁面,從該頁面鏈接到example3_8_2.jsp頁面,然后再從example3_8_2.jsp頁面鏈接到example3_8_3.jsp?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.4.2session對象存取數(shù)據(jù)使用session對象可以保存用戶在訪問某個Web服務(wù)期間的有關(guān)數(shù)據(jù)。有關(guān)處理數(shù)據(jù)的方法如下:
public
void
setAttribute(Stringkey,Objectobj)將參數(shù)obj指定的對象保存到session對象中,key為所保存的對象指定一個關(guān)鍵字。若保存的兩個對象關(guān)鍵字相同,則先保存的對象被清除。
publicObjectgetAttibute(Stringkey)獲取session中關(guān)鍵字是key的對象。
publicvoidremoveAttribute(Stringkey)從session中刪除關(guān)鍵字key所對應(yīng)的對象。
publicEnumerationgetAttributeNames()產(chǎn)生一個枚舉對象,該枚舉對象可使用方法nextElemets()遍歷session中各個對象所對應(yīng)的關(guān)鍵字?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.4.2session對象存取數(shù)據(jù)【例3-9】使用session對象模擬在線考試系統(tǒng)。編寫3個JSP頁面example3_9_1.jsp、example3_9_2.jsp和example3_9_3.jsp,在example3_9_1.jsp頁面中考試,在example3_9_2.jsp頁面中顯示答題結(jié)果,在example3_9_3.jsp頁面中計算并公布考試成績。首先運行example3_9_1.jsp頁面,效果如圖3.5(a)~3.5(c)所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.4.3session對象的生存期限一個用戶在某個Web服務(wù)中session對象的生存期限依賴于以下幾個因素: 用戶是否關(guān)閉瀏覽器。
session對象是否調(diào)用invalidate()方法。
session對象是否達(dá)到設(shè)置的最長“發(fā)呆”時間。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
序
號方
法功
能
說
明1longgetCreationTime()
返回session創(chuàng)建時間2longgetLastAccessedTime()返回此session里客戶端最近一次請求時間3intgetMaxInactiveInterval()
返回兩次請求間隔時間(單位是秒)4voidinvalidate()
使session失效5booleanisNew()判斷客戶端是否已經(jīng)加入服務(wù)器創(chuàng)建的session6voidsetMaxInactiveInterval()設(shè)置兩次請求間隔時間(單位是秒)3.4.3session對象的生存期限【例3-10】編寫1個JSP頁面example3_10.jsp。如果用戶是第一次訪問該頁面,會顯示歡迎信息,并輸出session對象允許的最長發(fā)呆時間、創(chuàng)建時間,以及session對象的ID。在example3_10.jsp頁面中,session對象使用setMaxInactiveInterval(int
maxValue)方法設(shè)置最長的“發(fā)呆”狀態(tài)時間為10秒。用戶如果兩次刷新間隔時間超過10秒,用戶先前的session被取消,用戶將獲得一個新的session對象。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.4.4實踐環(huán)節(jié)——購物車用戶到便民超市采購商品,購物前需要先登錄會員卡號,購物時先將選購的商品放入購物車,最后到柜臺清點商品。請借助于session對象模擬購物車,并存儲客戶的會員卡號和購買的商品名稱。會員卡號輸入后可以修改,購物車中的商品可以查看。編寫程序模擬上述過程。loginID.jsp實現(xiàn)會員卡號輸入,shop.jsp實現(xiàn)商品導(dǎo)購,food.jsp實現(xiàn)商品購物,count.jsp實現(xiàn)清點商品。本節(jié)實踐環(huán)節(jié)的4個JSP頁面都保存在目錄practice4中,先運行l(wèi)oginID.jsp頁面?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
學(xué)習(xí)目的與要求《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.1request對象3.2response對象3.3out對象3.4session對象3.5application對象3.6pageContext對象3.7page對象3.8config對象3.9exception對象3.10JSP的4種作用域3.5.1什么是application不同用戶的session對象互不相同,但有時候用戶之間可能需要共享一個對象,Web服務(wù)器啟動后,就產(chǎn)生了這樣一個唯一的內(nèi)置對象application。application對象實現(xiàn)了jakarta.servlet.ServletContext接口。任何用戶在訪問同一個Web服務(wù)的各個頁面時,共享一個application對象,直到服務(wù)器關(guān)閉,這個application對象才被取消?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.5.2application對象存取數(shù)據(jù)application同session對象一樣也可以進(jìn)行數(shù)據(jù)存取,處理數(shù)據(jù)的方法如下:
publicvoidsetAttribute(Stringkey,Objectobj)將參數(shù)obj指定的對象保存到application對象中,key為所保存的對象指定一個關(guān)鍵字。若保存的兩個對象關(guān)鍵字相同,則先保存的對象被清楚。
publicObjectgetAttribute(Stringkey)獲取application中關(guān)鍵字是key的對象。
publicvoidremoveAttribute(Stringkey)從application中刪除關(guān)鍵字key所對應(yīng)的對象。
publicEnumerationgetAttributeNames()產(chǎn)生一個枚舉對象,該枚舉對象可使用方法nextElemets()遍歷application中各個對象所對應(yīng)的關(guān)鍵字。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.5.2application對象存取數(shù)據(jù)【例3-11】用application對象模擬“成語接龍”,用戶通過example3_11_1.jsp向example3_11_2.jsp頁面提交四字成語,example3_11_2.jsp頁面獲取成語內(nèi)容后,用同步方法將該成語內(nèi)容和以前的成語內(nèi)容進(jìn)行連接,然后將這些四字成語內(nèi)容添加到application對象中。頁面運行效果如圖3.8(a)~3.8(b)所示?!禞avaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.5.3實踐環(huán)節(jié)——網(wǎng)站訪客計數(shù)器使用application對象實現(xiàn)網(wǎng)站訪客計數(shù)器的功能。《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
學(xué)習(xí)目的與要求《JavaWeb開發(fā)從入門到實戰(zhàn)(微課視頻版)(IntelliJIDEA版)》陳恒
主編,清華大學(xué)出版社,2024
3.1request對象3.2response對象3.3out對象3.4session對象3.5application對象3.6pageContext對象3.7page對象3.8config對象3.9exception對象3.10JSP的4種作用域3.6pageContext對象pageContext對象即頁面上下文對象,表示當(dāng)前頁面運行環(huán)境,用于獲取當(dāng)前JSP頁面的相關(guān)信息,它的作用范圍為當(dāng)前JSP頁面。pageContext對象的類型為jakarta.servlet.jsp.PageContext。pageContext對象可以訪問當(dāng)前JSP頁面的所有內(nèi)置對象,如表3.4所示。另外,pageContext對象提供了存取屬性方法,如表3.5所示?!禞avaWeb
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高級法官培訓(xùn)課程設(shè)計
- 自我反省的課程設(shè)計
- 駝峰課程設(shè)計踏板
- 液壓制動課程設(shè)計
- 非經(jīng)典邏輯教育課程設(shè)計
- 長軸式滾輪架課程設(shè)計
- 高中英語人教版課程設(shè)計
- 隧道畢業(yè)課程設(shè)計
- 麥桔打包機(jī)課程設(shè)計
- 銑床夾具課程設(shè)計豆丁網(wǎng)
- 上海紐約大學(xué)自主招生面試試題綜合素質(zhì)答案技巧
- 辦公家具項目實施方案、供貨方案
- 2022年物流服務(wù)師職業(yè)技能競賽理論題庫(含答案)
- 危化品安全操作規(guī)程
- 連鎖遺傳和遺傳作圖
- DB63∕T 1885-2020 青海省城鎮(zhèn)老舊小區(qū)綜合改造技術(shù)規(guī)程
- 高邊坡施工危險源辨識及分析
- 中海地產(chǎn)設(shè)計管理程序
- 簡譜視唱15942
- 《城鎮(zhèn)燃?xì)庠O(shè)施運行、維護(hù)和搶修安全技術(shù)規(guī)程》(CJJ51-2006)
- 項目付款審核流程(visio流程圖)
評論
0/150
提交評論