JSP語法

JSP是基於Java語言的動態網頁技術。當瀏覽器向Web應用服務器請求一個JSP頁面時,Web應用服務器將其轉換爲一個Servlet文件(即一個.java文件),然後將這個Java文件編譯成一個字節碼文件(即一個.class文件),最後Web應用服務器加載轉換後的Servlet實例,處理客戶端的請求,並返回HTML格式的頁面給客戶端瀏覽器。

JSP中包含了page、include、taglib 3個指令標示。

page指令提供了language、contentType、pageEncoding、import、autoFlush、buffer、errorPage、extends、info、isELIgnored、isErrorPage、isThreadSafe和session共13個屬性。通常情況下,pageEncoding屬性和contentType屬性會同事存在。pageEndoding屬性的作用是指定JSP頁面的編碼格式,如果將他的值設置爲ISO-8859-1,那麼該頁面中不能編寫中文信息,否則會出現亂碼。而contentType屬性的作用是指定服務器處理請求完成後,迴應給瀏覽器的內容類型,比如其值設置爲text/html; charset=UTF-8,就說明迴應的頁面時HTML文檔或文本內容,其字符集爲UTF-8。 

下面給出page指令的屬性使用示例:

<%@ page language="java"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page pageEncoding="UTF-8"%>
<%@ page import="java.util.Date"%>
<%@ page buffer="16kb"%>默認是8kb
<%@ page autoFlush="false"%>默認是true
<%@ page isErrorPage="true"%>默認是false,當JSP頁面指定了該屬性的時候,通過<%exception.getMessage()%>即可輸出errorPage頁面傳遞過來的異常信息。
<%@ page errorPage="error.jsp"%>定義某個出錯的頁面。

include指令是靜態包含,也就是說被包含文件中所有內容會被原樣包含到該JSP頁面中。即使被包含的文件中有JSP代碼,在包含時也不會被編譯執行而是將兩個頁面組合成一個頁面後,再進行編譯處理,最後返回結果頁面,使用該標籤的地方一般是在頁面頂部和頁面底部。下面給出include指令的屬性使用示例:

<%@ include file="includeFile.jsp"%>

taglib指令標識用於聲明一個標籤的引用,在JSP頁面之中聲明瞭哪個標籤庫的引用,就可以在JSP頁面中調用哪個標籤。taglib指令的語法格式如下:

<%@ taglib prefix="c" uri="htp://java.sun.com/jsp/jstl/core" %>

JSP腳本:包括JSP中應用的代碼片段<% %>,JSP表達式<%=%>,聲明標識的使用<%! %>。注:由於使用聲明標識聲明的變量是全局的,所以在多個用戶併發訪問的時候會產生線程安全的問題,此種方式應用很少。

HTML註釋用<!--   HTML代碼   -->,JSP註釋用<%--  JSP標籤代碼  --%> ,<%%>java代碼片段的註釋用// 、  /***/

常用的JSP動作標識<jsp:include>

<jsp:include>動作標識用於包含其他頁面,被包含的頁面可以是動態頁面,也可以是靜態頁面。包含的原理是將被包含的頁面先編譯處理後,再將其結果包含在頁面中。該動作標識的語法格式如下:

<jsp:include page="url" flush="true"></jsp:include> 其中flush屬性默認是false

<%@ include file="url"%>和<jsp:include>的區別:

<%@ include file="url"%>指令通過file屬性指定被包含的文件,並且file屬性不支持任何的表達式;<jsp:include>動作標識通過page屬性指定被包含的文件,而且page屬性支持JSP表達式。<%@ include file="url"%>指令只能先包含再編譯,會有父子頁面變量名字衝突的可能性。<jsp:include>動作標識則是先編譯後包含,就算父子頁面存在同名的變量也不會受到影響。


動作標識<jsp:forward>,用於將當前請求轉發到其他的web資源(HTML、JSP頁面、Servlet等)。在執行轉發之後,當前頁面將不會再被執行,而是去執行該標識指定的目標頁面。語法格式如下:

<jsp:forward page="url"></jsp:forward>

動作標識<jsp:param>,用於作爲其他標識的子標識,用於爲其他標識傳遞參數。語法格式如下:

<jsp:param name="" value="" />其功能與文件名後面直接加“?參數名=參數值”相同。


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