<b><%@ page options %></b> options 可以是一下一項或幾項:
language="java" 指定jsp container 要用什麼語言來編譯jsp 網頁,預設值為 java;
import="package-spec.*" 定義此jsp 頁面可以使用哪些 java API,用逗号分隔列出一個或多個全稱類名
session="true or false" 隻有在調試的時候才會設定為false,預設為true
buffer="none or number<b>[kb]</b>" 指定輸出流緩存的大小,預設為8 kb
autoflush="true or false" 決定輸出流的緩沖區是否要自動重新整理。預設為true
isThreadSafe="true or false" 預設為 true,表明此 jsp 頁面可以處理來自多個線程的同步的請求。不建議使用 false。預設為 true
errorPage="error-page-URL" 表面如果發生異常錯誤,網頁會被重定向一個URL 頁面。
isErrorPage="true or false" 如果此頁面被用作處理異常的頁面,則設定為 true。預設為false。
contentType="content-type" 表示将在生成Servlet 中使用的MIME類型和可選字元編碼。預設為 text/html
info="text" 表示此 jsp 頁面的相關資訊,可由 getServletInfo()方法傳回。
extends="name-of-super-class" 定義此jsp 頁面産生的 Servlet是繼承自哪一個父類,通常為HttpServlet)
<%@ include file="file-URL" %> 将指定的檔案包含到容器裡
<b><%@ taglib uri=".../glarf.tld" prefix="glarf" %></b>: 聲明标簽的使用
這一次主要介紹一下page 指令的相關屬性,另外兩個指令include和tablig将會在下一次詳細說明。
一、page import屬性
屬性 import 屬性類似java類裡import,不過page import 屬性可以包好多個類,類名之間使用逗号分隔。其文法格式如下:
例子如下:
<%@ page import="java.util.*" %>
Demo:在這個demo 裡包含了兩個個自定義的類,都在com.tools包裡,代碼設計如下:import.jsp
ServletUtilities 和 ShortLivedCookie 代碼設計如下,注意都在 com.tools包裡,
import.jsp 第一次通路的輸出如下:
<a href="http://peiquan.blog.51cto.com/attachment/201310/22/7518552_13824644155Dgh.png"></a>
import.jsp 第二次通路的輸出如下:
<a href="http://peiquan.blog.51cto.com/attachment/201310/22/7518552_1382464416LpQb.png"></a>
二、 page contentType 屬性
page contentType 屬性石用來設定 response 的頭字段 Content-Type的值,用來表示輸出到用戶端的文檔的 MIME 類型。不同的ContentType 會影響用戶端所看到的效果。一般來說,屬性contentType 的使用有以下兩種格式:
<%@ page contentType="MIME-Type" %>
<%@ page contentType="MIME-Type; charset=Character-Set" %>
如:<%@ page contentType="text/html" %>
如上代碼等同于 <% response.setContentType("text/html"); %>
附:Servlet 的預設 MIME 類型是 text/plain,jsp 預設類型是 text/html,預設的字元集是ISO-8859-1。
Demo1,:使用 contentType 屬性産生純文字檔案。
Demo2:利用 contentType屬性産生 excel 表格
将contentType 的屬性值設為“application/vnd.ms-excel”,便可産生一個簡易的 excel 表格。
格式化表格的方式有兩種,一種方式是:将資料分成一行行的,列之間的使用 tab 分開(注意不是空格鍵)。如下是一個簡單的例子(附:表格裡的資料可以從資料裡讀取)。
在 IE 的運作效果圖如下:
首先會彈出如下對話框:
<a href="http://peiquan.blog.51cto.com/attachment/201310/22/7518552_1382464418NDyC.png"></a>
接着就是
<a href="http://peiquan.blog.51cto.com/attachment/201310/22/7518552_1382464419AT8s.png"></a>
格式化表格的第二種方式,就是使用html 表格屬性控制,如果設定其對應 MIME 類型,則可輸出 excel 表格,如果沒有則輸出html表格.
Demo3:其實和Demo2很類似。exportToExcel.jsp代碼設計如下:
輸出效果圖:
<a href="http://peiquan.blog.51cto.com/attachment/201310/22/7518552_1382464420VYaO.png"></a>
<a href="http://peiquan.blog.51cto.com/attachment/201310/22/7518552_1382464421eooe.png"></a>
三、page isThreadSafe 屬性
屬性 isThreadSafe 表明此 jsp 頁面可以處理來自多個線程的同步的請求。一般是預設使用,如下:
<%@ page isThreadSafe="true" %> <%!-- 預設--%>
<%@ page isThreadSafe="false" %>
因為不推薦将isThreadSafe 屬性設定為 false,且這是與線程相關的知識體系,在此就不多做介紹了。相關知識可參考java 線程知識。
四、其他
對于剩下來的其他屬性,可以參考一開始給出來的總結。在此隻是補充一下如何使用屬性 isErrorPage 和 errorPage。
isErrorPage = ”true or false”,如果此頁面被用作處理異常錯誤的頁面,則為true。在這種情況下,頁面可被指定為另一頁面 page 指令元素中 errorPage 屬性的取值。指定此屬性為 true 時,便可以在此頁面使用内置對象 exception。預設值為false。
errorPage = “error-page-url”,表示如果網頁發生異常錯誤,網頁會被重新指向一個 url 頁面。錯誤頁面必須在其page 指令元素中指定 isErrorPage = ”true“。
Demo1:下面設定一個計算速度的 computeSpeed.jsp,如果正确輸入參數,便可得到正确的輸出;否則輸出異常頁面。
computeSpeed.jsp代碼如下:
Distance: <%= distance %> m
Time: <%= time %> s
Speed: <%= speed %> m/s.
speedErrors.jsp代碼如下:
如果正确輸出參數的值,可以得到如下頁面:
<a href="http://peiquan.blog.51cto.com/attachment/201310/22/7518552_13824644224NVq.png"></a>
參數輸入錯誤時,将會得到如下頁面。
<a href="http://peiquan.blog.51cto.com/attachment/201310/22/7518552_1382464428RrPl.png"></a>
本文轉自peiquan 51CTO部落格,原文連結:http://blog.51cto.com/peiquan/1313663