1. 程式人生 > >JSP基礎和指令

JSP基礎和指令

1.JSP (Java Server Pages)是指:
  • 在HTML中嵌入Java指令碼程式碼
  • 由應用伺服器中的JSP引擎來編譯和執行嵌入的Java指令碼程式碼
  • 然後將生成的整個頁面資訊返回給客戶端

特點:

1.程式邏輯和現實分離。具有動態頁面與靜態頁面的分離。
2.可重用元件
3.使用標籤簡化頁面開發,JSP標記具有可擴充套件性
4.具有java的特點,所有的JSP頁面都被編譯成Servlet,如安全性,跨平臺性,通過編譯後執行,克服了ASP的指令碼級解釋執行的缺點。

2.JSP執行流程
a.使用者(客戶機)訪問相應的JSP頁面。
b.伺服器找到相應的頁面。
c.伺服器將JSP轉譯成Servlet的原始碼(.java檔案)
d.伺服器將Servlet原始碼編譯為class檔案
e.伺服器將class檔案載入到記憶體並執行。
f.伺服器將class檔案執行後生成的HTML程式碼傳送給客戶機,客戶機瀏覽器根據相應的HTML程式碼進行顯示。

Web容器處理JSP檔案請求需要經過3個階段:
.翻譯階段.java
.編譯階段.class
.執行階段
特點:第一次請求之後,Web容器可以重用已經編譯好的位元組碼檔案,不執行轉譯只執行響應請求;如果對JSP檔案進行了修改,Web容器會重新對JSP檔案進行翻譯和編譯 。

3.JSP 頁面的元素包括:
聲 明 :<%! 宣告語句 %>
使用宣告語句宣告的變數為全域性變數,當有多個使用者執行此JSP頁面時,將共享該變數。如果該變數有改變值的語句,不同瀏覽器訪問的值會不一樣。
方法聲明後可在頁面中多處呼叫

小指令碼 :<% Java 程式碼 %>

表示式: <%=Java表示式 %>
JSP表示式標籤不必也不能使用分號作為結束的標記。

註釋 : <!-- html註釋,但客戶端可以檢視到 -->缺點:不安全,加大網路傳輸負擔
<%-- JSP註釋,但客戶端不能檢視到 --%>
還可以在指令碼中使用Java註釋。不會在HTML原始碼中顯示

靜態內容 :HTML靜態文字

4.指 令:以“<%@ ” 開始,以“%> ” 結束。
page指令:主要用來設定JSP頁面的全域性屬性,該配置作用為JSP整個頁面。

語法:<%@ page 屬性1="屬性值" 屬性2="屬性值1,屬性值2"… 屬性n="屬性值n"%>
1.<%@ page language="java" %>
宣告指令碼語言種類,預設是Java(目前只能Java)

2.<%@ page extends="繼承的父類" %>
指定該JSP生成的Servlet繼承哪個父類,很少使用。

3.<%@ page import="匯入的包名" %>
匯入的Java包,預設匯入的包:
java.lang.*;
javax.servlet.*;
javax.servlet.jsp.*;
javax.servlet.http.*;

4.<%@ page session="false" %>
該JSP頁面是否可以使用session物件,預設是true。


5.<%@ page buffer="40kb" %>
指定輸出流是否具有緩衝區,設定為none表示輸出流不具有

6.<%@ page autoFlush="true" %>
緩衝區是否進行強制輸出,設定為true,那麼當緩衝區滿的時候仍能輸出正常;設定為false,當緩衝區滿到時候將會產生異常。
如果buffer屬性設定為none,就不能將autoFlush設定為false。autoFlush預設屬性為true。

7.<%@ page isThreadSafe="true" %>
指定該JSP檔案是否支援多執行緒使用,預設為true。

8.<%@ page info="JSP檔案相關資訊" %>
設定該JSP檔案的相關資訊,可以是任何的資訊字串。
用Servlet.getServletInfo方法來獲取該資訊。out.println(getServletInfo());

9.<%@ page errorPage="錯誤處理頁面" %>
設定在當前JSP檔案發生異常錯誤時,網頁重新跳轉到能夠處理異常的JSP檔案。

10.<%@ page isErrorPage="false" %>
指定該JSP檔案是否為能夠處理異常的JSP檔案,預設值時false。

11.<%@ page contentType="text/html; charset=UTF-8" %>
指定該JSP檔案的MIME格式,以及網頁編碼格式,可以在網頁正常顯示JSP中的中文。

12.<%@ page pageEncoding="UTF-8" %>
指定網頁的編碼格式。

13.<%@ page isELIgnored="false" %>
指定該JSP檔案是否支援EL表示式。如果設定為true,表示JSP檔案忽略EL表示式,也就是EL表示式不會被執行;
如過設定為false,則表示EL表示式不會被忽略,EL表示式將會被執行。

include指令
用於在JSP檔案中插入一個包含文字或程式碼的檔案(HTML檔案,文字檔案,JSP檔案),將被包含的檔案所執行的結果插入到JSP檔案放置include指令的位置。
語法格式:<%@ include file="被包含檔案的地址" %>
只有一個屬性file,值為URL地址。

1.包含文字檔案<%@ include file="content.txt" %>
把文本里面的內容顯示在放include指令的位置,修改文字內容後頁面出現亂碼,在文字檔案的第一行加入<%@ page contentType="text/html; charset=UTF-8" %>就能正常顯示中文。
2.包含HTML檔案<%@ include file="content.html" %>
.包含JSP檔案<%@ include file="content.jsp" %>

taglib指令
用來宣告此JSP檔案使用了自定義標籤,同時引用所指定的標籤庫並設定標籤庫的字首。
語法格式:<%@ taglib uri="" prefic="" %>
包含兩個屬性,uri用來指定標籤庫的位置,prefix屬性用來指定該標籤庫使用的字首。