day50_JSP

JSP概述

概念:

  • JSP是Java Server Pages的簡寫。JSP是一個 java服務器端頁面。可以理解爲:一個特殊的頁面,其中既可以指定定義html標籤,又可以定義java代碼, 用於簡化書寫。JSP本質上就是一個Servlet

                                                 

JSP指令

什麼是JSP指令?

  • JSP指令的格式:<%@指令名 attr1=”” attr2=”” %>,一般都會把JSP指令放到JSP文件的最上方,但這不是必須的。
  • JSP中有三大指令:page、include、taglib,最爲常用,也最爲複雜的就是page指令了。
  • Tomcat編譯系統會根據JSP的指令信息來編譯JSP,生成Java文件。在生成的Java文件中,不存在指令信息!

page指令

通常位於jsp頁面的頂端,對同一個頁面可以有多個page指令。page指令的語法格式如下:

<%@page   
    [language="java"]
    [extends="package.class"]
    [import="package.class | package.*},......"]
    [session="true | false"]
    [buffer="none | 8kb | size kb"]
    [autoFlush="true | false"]
    [isThreadSafe="true | false"]
    [info="text"]
    [errorPage="relativeURL"]
    [contentType="mimeType[;charset=characterSet]" | "text/html;charSet="ISO8859-1""]
    [isErrorPage="true | false"]

  • %>
  • language: 聲明當前jsp頁面使用的腳本語言的種類, 該屬性的值通常是Java
  • extends:確定jsp程序編譯時所產生的Java類,需要繼承的父類,或者需要實現的接口的全限定類名
  • import:用來導入包,下面幾個包是自動導入的不需要顯示導入{java.lang.*   &&    javax.servlet.*  &&   javax.servlet.jsp.*    &&  javax.servlet.http.*}
  • session:設定這個jsp頁面是否是要http session
  • buffer:指定輸出緩衝區的大小。輸出緩衝區的jsp內部對象:out對象用於緩存jsp頁面對客戶瀏覽器的輸出,默認值爲8kb,可以設置爲none,也可以設置爲其他的值,單位爲kb
  • aotuFlush:當輸出緩衝區即將溢出時,好似否需要強制輸出緩衝區的內容。設置爲true時爲正常輸出,如果設置爲false,會在buffer溢出時產生異常
  • info:設置改jsp程序的信息,也可以看做其說明,可以通過Servlet.getServletInfo()方法獲取該值。如果在jsp頁面中,可直接調用getServletInfo()方發獲取該值,因爲jsp頁面的實質就是Servlet。
  • errorPage:指定錯誤處理頁面。如果本程序產生了異常或者錯誤,而該jsp頁面沒有對應的處理代碼,則會自動調用該指令所指定的jsp頁面。使用jsp頁       面時,可以不處理異常,即使是checked異常。
  • isErrorPage:設置本jsp頁面是否爲錯誤處理程序。如果該頁面本身已是錯誤處理頁面,則無須使用errorPage屬性。
  • contentType:用於設定生成網頁的文件格式和編碼方式,即MIME類型和頁面字符集類型,默認的MIME類型是text/html;默認的字符集爲ISO-8859-1 

include指令

  • include指令可以將一個外部文件嵌入到當前jsp文件中,同時解析這個頁面中的jsp語句。
  • 這是個靜態的include語句,不會檢查所包含jsp頁面的變化。
  • include既可以包含靜態的文本,也可以包含動態的jsp頁面。
  • 靜態的編譯指令include,是將被包含的頁面加入進來,生成一個完整的頁面include編譯指令的語法:<%@include file="relativeURLSpec"%>
  • 如果被嵌入的文件經常需要改變,建議使用<jsp:include>操作指令,因爲它是動態的include語句。

taglib指令

  • taglib指令用來聲明此JSP文件使用了自定義標籤,同時引用所指定的標籤庫並設置標籤庫的前綴。
  • <%@ taglib uri="URIToTagLibrary" prefix="tagprefix"%>
  • taglib指令包含兩個屬性,分別爲uri和prefix。
  • uri屬性用來指定標籤庫的存放位置
  • prefix屬性用來指定該標籤庫使用的前綴。自定義的

JSP註釋:

  •  html註釋:<!-- -->:只能註釋html代碼片段
  •  jsp註釋:<%-- --%>:可以註釋所有,推薦使用

JSP腳本

JSP的腳本就是JSP定義Java代碼的方式

  • <% 代碼 %>:  【腳本段:java程序段】定義的java代碼,在service方法中。service方法中可以定義什麼,該腳本中就可以定義什麼。
  • <%! 代碼 %>: 【申明:整個頁面的成員變量或方法】定義的java代碼,在jsp轉換後的java類的成員位置。
  • <%= 代碼 %>:【表達式】定義的java代碼,會輸出到頁面上。輸出語句中可以定義什麼,該腳本中就可以定義什麼。

JS內置對象

  • JSP提供了由容器實現和管理的內置對象,也可以稱之爲隱含對象,由於JSP使用Java作爲腳本語言,所以JSP將具有強大的對象處理能力,並且可以動態創建Web頁面內容。但Java語法在使用一個對象前,需要先實例化這個對象,這其實是一件比較煩瑣的事情。JSP爲了簡化開發,提供了一些內置對象,用來實現很多JSP應用。在使用JSP內置對象時,不需要先定義這些對象,直接使用即可。

在JSP中一共預先定義了9個這樣的對象,分別爲request、response、session、application、out、pageContext、config、page和exception。

           

內置對象(又叫隱含對象)特點: 

  • 由JSP規範提供,不用編寫者實例化。 
  • 通過Web容器實現和管理 
  • 所有JSP頁面均可使用 
  • 只有在腳本元素的表達式或代碼段中才可使用(<%=使用內置對象%>或<%使用內置對象%>)

內置對象詳解

1、request對象

  request 對象是 javax.servlet.httpServletRequest類型的對象。 該對象代表了客戶端的請求信息,主要用於接受通過HTTP協議傳送到服務器的數據。(包括頭信息、系統信息、請求方式以及請求參數等)。request對象的作用域爲一次請求。

2、response對象

  response 代表的是對客戶端的響應,主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它只在JSP頁面內有效。

3、session對象

  session 對象是由服務器自動創建的與用戶請求相關的對象。服務器爲每個用戶都生成一個session對象,用於保存該用戶的信息,跟蹤用戶的操作狀態。session對象內部使用Map類來保存數據,因此保存數據的格式爲 “Key/value”。 session對象的value可以使複雜的對象類型,而不僅僅侷限於字符串類型。

4、application對象

   application 對象可將信息保存在服務器中,直到服務器關閉,否則application對象中保存的信息會在整個應用中都有效。與session對象相比,application對象生命週期更長,類似於系統的“全局變量”。

5、out 對象

  out 對象用於在Web瀏覽器內輸出信息,並且管理應用服務器上的輸出緩衝區。在使用 out 對象輸出數據時,可以對數據緩衝區進行操作,及時清除緩衝區中的殘餘數據,爲其他的輸出讓出緩衝空間。待數據輸出完畢後,要及時關閉輸出流。

6、pageContext 對象

  pageContext 對象的作用是取得任何範圍的參數,通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。

7、config 對象

   config 對象的主要作用是取得服務器的配置信息。通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中爲應用程序環境中的Servlet程序和JSP頁面提供初始化參數。

8、page 對象

  page 對象代表JSP本身,只有在JSP頁面內纔是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似於Java編程中的 this 指針。

9、exception 對象

  exception 對象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP文件。excepation對象和Java的所有對象一樣,都具有系統提供的繼承結構。exception 對象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關鍵字來處理異常情況; 如果在JSP頁面中出現沒有捕獲到的異常,就會生成 exception 對象,並把 exception 對象傳送到在page指令中設定的錯誤頁面中,然後在錯誤頁面中處理相應的 exception 對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章