![基于工作任務java web應用教程教學ch4使用_第1頁](http://file4.renrendoc.com/view/3a40c699fb0d2b4aeb53db663a88ecdb/3a40c699fb0d2b4aeb53db663a88ecdb1.gif)
![基于工作任務java web應用教程教學ch4使用_第2頁](http://file4.renrendoc.com/view/3a40c699fb0d2b4aeb53db663a88ecdb/3a40c699fb0d2b4aeb53db663a88ecdb2.gif)
![基于工作任務java web應用教程教學ch4使用_第3頁](http://file4.renrendoc.com/view/3a40c699fb0d2b4aeb53db663a88ecdb/3a40c699fb0d2b4aeb53db663a88ecdb3.gif)
![基于工作任務java web應用教程教學ch4使用_第4頁](http://file4.renrendoc.com/view/3a40c699fb0d2b4aeb53db663a88ecdb/3a40c699fb0d2b4aeb53db663a88ecdb4.gif)
![基于工作任務java web應用教程教學ch4使用_第5頁](http://file4.renrendoc.com/view/3a40c699fb0d2b4aeb53db663a88ecdb/3a40c699fb0d2b4aeb53db663a88ecdb5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1
4.1 JSP語法元素
4.2 JSP網頁是Servlet
4.3 理解page指令標簽
4.4 JSP常用內部對象4.5catalog模塊網頁動態(tài)版本
4.6 用JSP實現(xiàn)品種列表Category.jsp第4章–使用JSP2學習目標通過本章的學習,你可以:掌握JSP的基本語法
掌握JSP的常用內部對象的使用掌握如何使用JSP完成動態(tài)頁面完成任務434.1JSP語法元素
4.1.1 指令標簽
4.1.2 聲明標簽
4.1.3 腳本標簽
4.1.4 表達式標簽4.1.5
動作標簽4.1.6
注釋標簽
JSP標簽類型說明標簽語法指令標簽發(fā)給JSP引擎的翻譯時執(zhí)行的命令<%@Directives%>聲明標簽定義和聲明方法和變量<%!JavaDeclarations%>腳本標簽允許程序員在JSP頁面自由編寫Java代碼<%SomeJavacode%>表達式標簽在JSP頁面輸出的HTML中輸出值的縮寫格式<%=AnExpression%>動作標簽給JSP引擎提供請求時指令<jsp:actionName/>注釋標簽為JSP頁面添加注釋<%--AnyText--%>44.1.1 指令標簽指令標簽向JSP引擎提供關于JSP頁面的常規(guī)信息,共有3類指令:page,include和taglibpage指令向引擎提供關于JSP頁面的總體屬性。如<%@pagelanguage="java"%>告訴引擎JSP頁面將使用java作為腳本語言include指令告訴引擎在當前頁面引入另一個文件(如HTML,JSP等)的內容。如<%@includefile="copyright.html"%>taglib指令用于關聯(lián)一個前綴和一個標簽庫。如<%@taglibprefix="test"uri="taglib.tld"%>54.1.1 指令標簽(續(xù))指令標簽以<%@打頭并以%>結束。三個指令的基本語法如下:
<%@pageattribute-list%><%@includeattribute-list%><%@taglibattribute-list%>關于指令標簽,需要注意的是:標簽名稱,它們的屬性,和屬性值都是大小寫敏感的值必須包含在一對雙引號或單引號(英文)中一對雙引號和以對單引號(英文)等價在等號和值之間不能有空格64.1.2聲明標簽聲明標簽定義或聲明可以在JSP頁面使用的方法和變量,如<%!intcount=0;%>聲明了一個變量count,并且初始化其值為0。變量值只在頁面第一次加載時初始化一次,并且在后續(xù)的頁面請求中保持它的值。聲明標簽總是以<%!開始,以%>結束。它可以包含任意多合法的Java聲明語句。如,下面的代碼使用一個聲明標簽聲明了一個方法和一個變量:<%!Stringcolor[]={"red","green","blue"};StringgetColor(inti){returncolor[i];}%>74.1.2聲明標簽(續(xù))也可以將上面的2個Java聲明語句放在2個JSP聲明標簽中,代碼如下:
<%!Stringcolor[]={"red","green","blue"};%><%!StringgetColor(inti){returncolor[i];}%>需要注意的是,由于聲明標簽包含Java聲明語句,所以變量聲明語句必須以分號結束84.1.3腳本標簽腳本標簽是嵌入到JSP頁面的Java代碼片段,如counter.jsp中的JSP腳本:腳本標簽總是以<%開始,以%>結束。需要注意的是,腳本標簽內的代碼必須是有效的Java代碼,如,下面的代碼是錯誤的,因為它沒有使用分號結束一個打印語句<%out.print(count)%><%count++;%>94.1.4表達式標簽表達式標簽是Java語言表達式的占位符,如<%=count%>
JSP表達式標簽總是以<%=開始以%>結束。與表達式標簽不同,表達式不能用分號結尾,如<%=count;%>是錯誤的可以使用表達式輸出任何對象或原始數(shù)據(jù)類型(int,boolean,char,等.)的值。也可以使用表達式輸出任何算術、邏輯表達式和方法調用返回的值104.1.4表達式標簽(續(xù))<%!intanInt=3;booleanaBool=true;IntegeranIntObj=newInteger(3);FloataFloatObj=newFloat(12.6);Stringstr="somestring";StringBuffersBuff=newStringBuffer();chargetChar(){return'A';}%>合法表達式說明<%=500%>一個整數(shù)字面值<%=anInt*3.5/100-500%>算術表達式<%=aBool%>布爾變量<%=false%>布爾字面值<%=!false%>布爾表達式<%=getChar()%>返回字符值的方法<%=Math.random()%>返回double的方法<%=aVector%>Vector對象<%=aFloatObj%>Float對象<%=aFloatObj.floatValue()%>返回float的方法<%=aFloatObj.toString()%>返回String的方法不合法表達式說明<%=aBool;%>不能使用分號<%=inti=20%>不能在表達式中聲明類型<%=sBuff.setLength(12);%>方法不返回任何值,用了分號114.1.5
動作標簽
動作標簽是給JSP引擎的命令,在頁面執(zhí)行時,引導引擎完成某個任務。如<jsp:includepage="copyright.jsp"/>指示引擎在本頁面的輸出中包含另一個JSP頁面copyright.jsp的輸出共有7個動作標簽:動態(tài)加載動作標簽jsp:include跳轉動作標簽jsp:forward傳遞參數(shù)動作標簽jsp:param與Java插件相互作用的標簽jsp:plugin使用JavaBean的動作標簽jsp:useBean、jsp:setProperty和jsp:getProperty124.1.6
注釋標簽注釋標簽<%--任何注釋語句--%>不會影響JSP也面的輸出,只是給頁面增加注釋JSP引擎會丟掉<%--和--%>之間的內容,使用它可以注釋掉大片JSP代碼(在客戶端瀏覽器中看不到)13小測試問題:下面哪一個指令標簽是有效的?a<%pagelanguage="java"%>b<%!pagelanguage="java"%>c<%@pagelanguage="java"%>
答案:C。問題:下面代碼有什么錯誤?<!%inti=5;%><!%intgetI(){returni;}%>答案:聲明標簽以<%!開始而不是<!。14小測試(續(xù))問題:假設myObj是一個對象,m1()是myObj的有效方法,下面那些是合法的JSP代碼,哪些是不合法的?a<%myObj.m1()%>b<%=myObj.m1()%>c<%=myObj.m1()%>d<%=myObj.m1();%>
答案:不合法的有a,c,d,如果m1()方法沒有返回值(為void),則b也不合法。154.2.1JSP網頁是Servlet雖然JSP頁面在結構上像HTML,但是實際上它是Servlet。JSP引擎解析JSP文件并且創(chuàng)建一個對應的Java文件。這個Java文件聲明一個Servlet類,這個類的成員與JSP文件中的元素直接對應。JSP引擎然后編譯這個類,加載它,并且像Servlet一樣執(zhí)行它。這個Servlet的輸出會發(fā)送給客戶端4.2.2理解轉化單元JSP頁面可以包含其他JSP或HTML頁面的內容(使用include指令)。當JSP引擎產生Java代碼時也會將包含的頁面的內容插入到產生的Servlet中這些轉化到一個Servlet中的內容叫做一個轉化單元。有些JSP標簽會影響整個轉化單元而不只是影響它定義的頁面。這些標簽包括:page指令標簽影響整個轉化單元變量定義標簽在一個轉化單元中只能初始化一次。如果一個變量在JSP頁面中已經聲明,就不能在使用include指令標簽包含的頁面中再次聲明,因為2個頁面將組成一個轉化單元。<jsp:useBean>動作標簽不能在同一個轉化單元中聲明同一個bean2次164.3理解page指令標簽屬性page指令標簽通知JSP引擎JSP頁面的總體屬性指令標簽應用于整個轉化單元,不只是應用定義它的頁面17屬性名說明默認值Import由逗號隔開的在jsp頁面要用到的java類和表列表java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*;sessionBoolean值,表示jsp頁面是否參與會話trueerrorPage指定代表本頁面處理錯誤的另一個jSP頁面的URLnullisErrorPage說明本頁面是否可以處理錯誤的boolean值falselanguage任何JSP引擎支持的語言javaextends任何實現(xiàn)javax.servlet.jsp.JspPage的有效類依賴于實現(xiàn)buffer規(guī)定輸出緩沖區(qū)的大小(以kb為單位),如果不要求緩沖,設為none依賴于實現(xiàn)autoFlush定義緩沖滿時是否flush的boolean值trueinfo任何關于本頁面的信息依賴于實現(xiàn)contentType指定本頁面的MIME類型和輸出的字符編碼text/html;charset=ISO-8859-1pageEncoding指定本頁面的字符編碼ISO-8859-1184.4.JSP常用內部對象
內部對象(又叫隱式對象)是JSP頁面可直接使用的預定義變量內部對象包括request、out、session
、response、exception、pageContext、application、page和config其中常用內部對象是
request、out、session
194.4.1
request與請求參數(shù)
request是類java.servlet.HttpServletRequest的一個對象當客戶端請求一個JSP頁面時,JSP容器會將請求信息的內容包裝在request對象中通過調用request的方法可得到請求信息的內容請求頭信息系統(tǒng)信息請求的方式請求的參數(shù)名和參數(shù)值等204.4.1
request與請求參數(shù)(續(xù))請求參數(shù)就是追加到URL上的一個名稱-值對。參數(shù)以問號(?)開始并采用name=value形式,參數(shù)之間用(&)符隔開
productid=FI-FW-01
請求頁面是Product.jsp,有2個參數(shù)catid和productid,值分別是FISH和FI-FW-01。214.4.1
request與請求參數(shù)(續(xù))傳遞請求參數(shù)主要采用以下2種方式在瀏覽器的地址欄中請求頁面的URL后直接追加通過表單域傳遞,參數(shù)值為用戶在對應表單域中錄入的值<Formaction=><inputtype=textname=catid><!--名為catid的文本框--><inputtype=textname=productid><!--名為productid的文本框--><inputtype=submit><!--提交按鈕--></FORM>224.4.1
request與請求參數(shù)(續(xù))調用request的相關方法:getParameterNames()得到所有請求參數(shù)的名稱,如catid,productid通過getParameter()和getParameterValues()得到請求參數(shù)值,如“FISH”和“FW-FI-01”234.4.2
outout對象是類javax.servlet.jsp.jspWriter的一個對象jspWriter類提供方法print()和println(),用于產生到瀏覽器的輸出
244.4.3
sessionsession是類javax.servlet.http.HttpSession的一個對象session指的是客戶端與服務器端的一次會話,會話從客戶連接到服務器開始,直到與服務器斷開連接為止,在這個期間都可以使用對應這次會話的session對象的屬性與方法經常用來跟蹤用戶的信息調用方法setAttribute()將數(shù)據(jù)存儲到會話中調用方法getAttribute()方法來訪問會話中的數(shù)據(jù)
254.5寵物分類展現(xiàn)網頁動態(tài)版本開發(fā)準備
4.5.1 實現(xiàn)思路
4.5.2 在web.xml中設置歡迎頁面
264.5.1
實現(xiàn)思路
在靜態(tài)版本的基礎上進行修改通過JSP標記在靜態(tài)版本的基礎上增加動態(tài)內容實現(xiàn)各頁面的動態(tài)版本使用include指令復用重復代碼主要是復用網頁公共頂部IncludeTop.jsp和公共底部IncludeBottom.jsp<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><%@includefile="mon/IncludeTop.jsp"%>Main_body.jsp或Category_body.jsp或Product_body.jsp或Item_body.jsp代碼<%@includefile="mon/IncludeBottom.jsp"%>274.5.1
實現(xiàn)思路(續(xù))各頁面通過傳遞不同的請求參數(shù)顯示不同的內容對于Category.jsp來說,如果知道分類編號catid,則可以通過分類編號查詢數(shù)據(jù)庫獲得該分類品種列表頁面所需要的所有數(shù)據(jù)通過為Category.jsp傳遞分類編號,來顯示不同分類的品種列表,如Category.jsp?catid=FISH表示顯示魚類的品種信息,Category.jsp?catid=CATS表示顯示貓類的品種信息其他頁面(Product.jsp和Item.jsp
)類似處理284.5.2在web.xml中設置歡迎頁面
歡迎頁面,就是web應用的默認訪問頁面,在Web應用項目的配置文件web.xml中設置<!--配置歡迎文件--> <e-file-list> <e-file>index.jsp<e-file> <e-file-list>
在mypetstore項目的web.xml文件中增加上述配置信息,可以將WebRoot下的index.jsp設置為歡迎頁面。如果在瀏覽器的地址欄中只輸入就可打開該頁面294.3.2在web.xml中設置歡迎頁面(續(xù))index.jsp代碼如下:<%@pagecontentType="text/html;charset=UTF-8"%><linkrel="StyleSheet"href="css/jpetstore.css"type="text/css"media="screen"/><divid="Content"><h2>歡迎來到寵物商城</h2><p><ahref="catalog/Main.jsp">進入寵物商城</a></p><p><sub>源自開元項目JPetstore</sub></p><!--<sub></sub>標記說明內含文本要以下標的形式顯示,比當前字體稍小--></div>304.6用JSP實現(xiàn)頁面Category.jsp
4.6.1 網頁公共頂部文件IncludeTop.jsp
4.6.2 網頁公共底部IncludeBottom.jsp
4.6.3 用JSP實現(xiàn)Category.jsp314.6.1 公共頂部文件IncludeTop.jsp所有頁面共享的頂部文件page指令指定頁面內容類型和編碼:<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%>完整頁面的前面代碼<html><head>….</head><body>頂部內容主要由Header分區(qū)構成,Header分區(qū)中包含Logo,Menu,Search和QuickLinks4個子分區(qū),即:<divid="Header"><divid=“Logo”>顯示Logo圖片</div><divid=“Menu”>顯示購物車,我的賬戶等</div><divid=“Search”>顯示查找表單</div><divid=“QuickLinks”>顯示魚,狗,爬行類,貓,鳥等頁面超鏈接</div><div><divid=“content”>4.6.1 公共頂部文件IncludeTop.jsp(續(xù))與系統(tǒng)目標界面對比,發(fā)現(xiàn)需要設置4個層的位置,菜單Menu層的前景色(包括文本和超鏈接)統(tǒng)一,查找層Search文本框和按鈕的特殊格式,并且整個頁面背景需要設置深灰色背景(#444),主體部分即content層采用白色背景(#FFF)。在jpetstore.css中完成設置324.6.1 公共頂部文件IncludeTop.jsp(續(xù))body{margin:0ex2ex0ex2ex;padding:0ex;background-color:#444;}
#Content{margin:0;padding:0ex0ex0ex0ex;width:99%;background-color:#FFF;}334.6.1 公共頂部文件IncludeTop.jsp(續(xù))#Logo{width:33%;float:left;background-color:#000;height:11ex;}
#Menu{width:33%;float:left;background-color:#000;height:11ex;}
#Menu,#Menua,#Menua:link,#Menua:visited,#Menua:hover{color:#eaac00;text-decoration:none;}
344.6.1 公共頂部文件IncludeTop.jsp(續(xù))#Searchinput{border-width:.1ex.1ex.1ex.1ex;border-style:solid;border-color:#aaa;background-color:#666;color:#eaac00;}
#QuickLinks{text-align:center;background-color:#FFF;width:99%;}354.6.1 公共頂部文件IncludeTop.jsp(續(xù))在IncludedTop.jsp文件前添加如下代碼:<LinkRel="STYLESHEET"Href="../css/jpetstore.css"Type="text/css">36374.6.2 公共底部文件IncludeBottom.jsp建立公共底部HTML文件IncludeBottom.jsp,代碼如下<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%><LinkRel="STYLESHEET"Href="../css/jpetstore.css"Type="text/css"></div>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度城市民宿租賃合同示范文本2篇
- 礦井急救培訓方案
- 二零二五版房屋收購與附帶家具家電合同6篇
- 路橋路面改造施工方案
- 二零二五版離婚程序指導及雙方自愿協(xié)議合同3篇
- 二零二五年度城市基礎設施建設外協(xié)合同申請與驗收辦法3篇
- 二零二五版學生校外住宿安全協(xié)議與住宿合同違約賠償合同3篇
- 二零二五年度奢侈品退換貨標準協(xié)議模板3篇
- 銀行高層裝修方案
- 二零二五年度教育機構校園裝修工程協(xié)議書2篇
- 2025年人民教育出版社有限公司招聘筆試參考題庫含答案解析
- 康復醫(yī)學治療技術(士)復習題及答案
- 《血管性血友病》課件
- 高三日語一輪復習日語助詞「に」和「を」的全部用法課件
- 執(zhí)業(yè)醫(yī)師資格考試《臨床執(zhí)業(yè)醫(yī)師》 考前 押題試卷絕密1 答案
- 社會保險課件教學課件
- 訂婚協(xié)議書手寫模板攻略
- 宇航用商業(yè)現(xiàn)貨(COTS)器件保證指南-編制說明
- 2024年安全員-C證考試題庫及答案(1000題)
- 《立體倉庫鋼結構貨架技術規(guī)范(征求意見稿)》
- 2024年貴州蔬菜集團有限公司招聘筆試參考題庫附帶答案詳解
評論
0/150
提交評論