JSP的3個編譯指令、7個動作指令_第1頁
JSP的3個編譯指令、7個動作指令_第2頁
JSP的3個編譯指令、7個動作指令_第3頁
JSP的3個編譯指令、7個動作指令_第4頁
JSP的3個編譯指令、7個動作指令_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

JSP的3個編譯指令、7個動作指令3個編譯指令:page、include、taglibJSP的編譯指令是通知JSP引擎(Tomcat、WebLogic)的消息,它不直接生成輸出。JSP引擎的工作原理:當一個JSP頁面第一次被訪問的時候,JSP引擎將執(zhí)行以下步驟:〔1〕將JSP頁面翻譯成一個Servlet,這個Servlet是一個java文件,同時也是一個完整的java程序〔2〕JSP引擎調(diào)用java編譯器對這個Servlet進行編譯,得到可執(zhí)行文件class〔3〕JSP引擎調(diào)用java虛擬機來解釋執(zhí)行class文件,生成向客戶端發(fā)送的應(yīng)答,然后發(fā)送給客戶端以上三個步驟僅僅在JSP頁面第一次被訪問時才會執(zhí)行,以后的訪問速度會因為class文件已經(jīng)生成而大大提高。當JSP引擎街道一個客戶端的訪問請求時,首先判斷請求的JSP頁面是否比對應(yīng)的Servlet新,如果新,對應(yīng)的JSP需要重新編譯。編譯指令都有其默認值,因此無須為每個指令設(shè)置其值。常見的編譯指令有3個:(1)、page:是針對當前頁面的指令;(2)、include:用于指定包含另一個頁面;(3)、taglib:用于定義和訪問自定義標簽。使用編譯指定的語法格式如下:<%@編譯指令名屬性1="屬性值"屬性2="屬性值"...%>1、page指令:是針對當前頁面的指令,通常位于JSP頁面的頂端,一個JSP頁面可以使用多page指令。常用的page指令如下的格式:<%@pagecontentType="text/html;charset=GBK"language="java"errorPage=""%><%@pageimport="java.sql.*"%>常用的page的屬性如下:(1)、contentType:用于設(shè)定生成網(wǎng)頁的文件格式和編碼字符集,即MIME類型和頁面字符集類型,默認MIME類型是text/html,默認的字符集類型為:ISO-8859-1;(2)、language:聲明當前JSP頁面使用的腳本語言的種類,因為頁面是JSP頁面,所以該屬性的值通常都是java。(3)、errorPage:指定錯誤處理頁面,如果本頁面產(chǎn)生了異?;蛘咤e誤,而該頁面沒有對應(yīng)的處理代碼,那么會自動調(diào)用該屬性指定的JSP頁面;(4)、pageEncoding:指定生成網(wǎng)頁的編碼字符集;(5)、import:用于導入包。下面幾個包是默認自動導入的,不需要顯示導入。默認導入的包有:java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet..*;2、include指令:語法格式為:<%@includefile="要包含的頁面路徑"%>jsp中有兩種包含模式,一種是<%@includefile="要包含的頁面路徑"%>,這種叫靜態(tài)包含;另一種是<jsp:includepage="要包含的頁面路徑"/>,這叫做動態(tài)包含。靜態(tài)包含是直接把要包含的頁面原樣嵌入總的頁面后再統(tǒng)一編譯,而動態(tài)包含總的頁面和要嵌入的頁面是分開編譯的。jsp是建議但凡*.jsp的頁面如果要被另一個頁面包含,那么應(yīng)該用<jsp:include...>動態(tài)包含,如果只是html或者是一段文本,那么用動態(tài)包含和靜態(tài)包含都可以。因此原那么上我們都傾向于使用<jsp:include>動態(tài)包含。7個動作指令動作指令和編譯指令不同,編譯指令是通知Servlet引擎的處理消息,而動作指令只是運行時的動作。編譯指令在將JSP編譯成Servlet時起作用;而處理指令通常可替換成JSP腳本,它只是JSP腳本的標準化寫法。JSP動作指令主要有如下的7個:jsp:forward:執(zhí)行頁面轉(zhuǎn)向,將請求的處理轉(zhuǎn)發(fā)到下一個頁面。jsp:param:用于傳遞參數(shù),必須與其他支持參數(shù)的標簽一起使用。jsp:include:用于動態(tài)引入一個JSP頁面。jsp:plugin:用于下載JavaBean或Applet到客戶端執(zhí)行。jsp:useBean:創(chuàng)立一個JavaBean的實例。jsp:setProperty:設(shè)置JavaBean實例的屬性值。jsp:getProperty:輸出JavaBean實例的屬性值一、jsp:forward指令jsp:forward指令用于將頁面響應(yīng)轉(zhuǎn)發(fā)到另外的頁面。既可以轉(zhuǎn)發(fā)到靜態(tài)的HTML頁面,也可以轉(zhuǎn)發(fā)到動態(tài)的JSP頁面,或者轉(zhuǎn)發(fā)到容器中的Servlet中。jsp:forward指令的語法格式:<jsp:forwardpage="path<%expression%>"><jsp:paramname=""value=""/></jsp:forward>下面使用jsp:forward動作指令來轉(zhuǎn)發(fā)用戶請求:jsp-forward.jsp:<%@pagelanguage="java"contentType="text/html;charset=utf-8"pageEncoding="utf-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"":///TR/html4/loose.dtd"><html><head><meta-equiv="Content-Type"content="text/html;charset=utf-8"><title>forward的原始頁面</title></head><body><h2>這是jsp:forward的原始頁面</h2><jsp:forwardpage="forward-result.jsp"><jsp:paramvalue="21"name="age"/><jsp:paramvalue="evan"name="name"/></jsp:forward></body></html>將客戶端請求轉(zhuǎn)發(fā)到forward-result.jsp頁面,轉(zhuǎn)發(fā)時增加了二個請求參數(shù):一個參數(shù)名為age,參數(shù)值為21,另一個參數(shù)名為name,參數(shù)值為evan。在forward-result.jsp頁面中,可以通過request內(nèi)置對象來獲取增加的請求參數(shù)值。forward-result.jsp頁面代碼如下:<%@pagelanguage="java"contentType="text/html;charset=utf-8"pageEncoding="utf-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"":///TR/html4/loose.dtd"><html><head><meta-equiv="Content-Type"content="text/html;charset=utf-8"><title>forward跳轉(zhuǎn)之后的頁面</title></head><body><h2>這是從jsp-forward頁面跳轉(zhuǎn)之后到得頁面</h2><!--使用request內(nèi)置隊形獲取age和name參數(shù)的值-->姓名:<%=request.getParameter("name")%>年齡:<%=request.getParameter("age")%></body></html>結(jié)果如下:從執(zhí)行結(jié)果來看,用戶請求的地址依然沒有發(fā)生改變,但頁面內(nèi)容卻完全變?yōu)閒orward目標頁的內(nèi)容。注意:JSP頁面中有中文時,為防止出現(xiàn)中文亂碼,使用UTF-8字符集。二、jsp:include指令:jsp:include指令是一個動態(tài)include指令,也可以包含某個頁面,它不會導入被include頁面的編譯指令,僅僅將被導入頁面的body內(nèi)容插入本頁面?!仓粚隻ody的內(nèi)容〕include指令的格式如下:<jsp:includepage="<url|expressions>"flush='true'/>或者為:<jsp:includepage="<url|expressions>"flush='true'><jsp:paramname="請求參數(shù)名"value="請求參數(shù)值"/></jsp:include>flush屬性用于指定輸出緩存是否轉(zhuǎn)移到被導入文件中。實例:jsp-include.jsp代碼如下:<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"":///TR/html4/loose.dtd"><html><head><meta-equiv="Content-Type"content="text/html;charset=UTF-8"><title>JSP:include指令測試</title></head><body><h2>JSP:include指令測試,這是jsp-include.jsp頁面</h2><br><!--使用動態(tài)include指令導入頁面--><jsp:includepage="jsp-include1.jsp"/></body></html>jsp-include1.jsp代碼如下:<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"":///TR/html4/loose.dtd"><html><head><meta-equiv="Content-Type"content="text/html;charset=UTF-8"><title>JSP:include指令測試</title></head><body><h2>JSP:include指令測試,這是jsp-include1.jsp頁面</h2></body></html>執(zhí)行結(jié)果如下:三、jsp:useBean、jsp:setProperty、jsp:getProperty指令這三個指令都是和javaBean相關(guān)的指令,其中jsp:useBean指令用于在JSP頁面中初始化一個JAVA實例;jsp:setProperty指令用于為JavaBean實例的屬性設(shè)置值;jsp:getProperty指令用于輸出JavaBean實例的屬性。jsp:useBean指令的語法格式為:<jsp:useBeanid="name"class="classesname"scope="page|request|session|application"/>其中,id屬性為JavaBean的實例名,class屬性確定JavaBean的實現(xiàn)類。scope屬性用于指定JavaBean實例的作用范圍,該范圍有如下4個值:(1)、page:該JavaBean實例僅在該頁面中有效;(2)、request:該JavaBean實例在本次請求中有效;(3)、session:該JavaBean實例在本次session內(nèi)有效;(4)、application:該JavaBean實例在本應(yīng)用內(nèi)一直有效。jsp:setProperty指令的語法格式如下:<jsp:setPropertyname="BeanName"

溫馨提示

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

評論

0/150

提交評論