標籤:例子 odi cep exce 緩衝滿 iter href 錯誤處理 重新整理
JSP指令說明:1、JSP指令用於告知JSP 引擎轉譯JSP時的轉化參數,他們不產生輸出資訊,只是在JSP的轉譯和編譯期間起作用。 2、JSP指令必須寫在規定的格式中: <%@ [goes here] %>3、除了include指令外,page 和 taglib指令都必須寫在JSP檔案的開始處。JSP指令主要有3個 page , include , taglib ,下面一 一介紹 page 指令page指令由很多k-v形式的屬性構成,除了import屬性外,其它的屬性都只能出現一次。
language ="java" |
目前只能使用java,預設就好。 |
extends = "className" |
指定轉譯後的Servlet的父類,通常是JSP引擎指定的,因此不要使用這個屬性,預設就好。 |
isThreadSafe="true" |
預設是true ,不要修改這個屬性,預設就好。官方已經強烈不推薦將其設定為false。如果是false,那麼多個請求串列執行service方法。 |
autoFlush = "true|false" |
如果為true,則當out對象的輸出資料流緩衝滿時,自動重新整理流,將緩衝資料寫入到響應本文中。如果為false,則當out對象的輸出資料流緩衝滿時將拋出異常。預設是true,預設就好。 |
isELIgnored = "false | true" |
此JSP頁面的EL運算式是否啟用。如果為true,則此JSP頁面的EL不會生效。如果為false,則可以在此JSP頁面使用EL。預設是false,預設就好。 |
info="" |
JSP頁面的描述資訊,可以通過getServletInfo獲得。可有可無。預設就好。 |
|
|
buffer = "none | 8kb| 16kb|等等" |
JspWriter對象 out 的輸出緩衝的大小。預設是8kb |
isErrorPage= "true | false" |
指示當前JSP是否是用於處理錯誤的頁面,如果是true,則這個JSP可以設定為其它JSP 的 errorPage 的值。 且在這個JSP中可以使用隱式對象exception。 |
errorPage = "error_page_url" |
指定當出現異常,錯誤時,轉寄的到的錯誤處理頁面。error_page_url是相對位址。例如異常處理頁面寫在WEB/ErrorHandleJSPs下的500.jsp。 errorPage= "WEB-INF/ErrorHandleJSPs/500.jsp" |
|
|
import = "java.util.*,java.io.*" |
也就是匯入包。import屬性在JSP頁面中可以出現多次(其它的只能出現一次)。例如<%@ page import="java.io.*" % > <%@ page import="java.util.*" % > |
session = "true | false" |
指示這個JSP頁面是否需要使用session。如果為true,則隱式對象session就是引用當前會話對象。並且,如果會話對象在這個JSP頁面使用session之前沒建立,則會自動建立且讓隱式對象session引用這會話對象。如果為false,則此頁面不能使用session,(session為null),也不會主動產生session對象。預設是true |
contentType="text/html;charset=utf-8" |
響應文檔的MIME類型。將成為轉移後的Servlet中的service方法中的response.setContentType("xxxxxxxx") |
pageEncoding="utf-8" |
定義此JSP頁面儲存時的字元編碼。預設是 ISO-8859-1 |
trimDirectiveWhitespaces="true|false" |
預設是false,設定為true後效果如下: |
include指令 靜態包含,被包含的檔案的內容將會在轉譯期間,合并到JSP檔案中去(合并的插入位置就是incude指令所在的位置),其結果就好像被包含的檔案的內容原本就寫在JSP中一樣。 <%@include file="被包含檔案的相對路徑url"%> 如果url是以 /開頭的,則路徑是相對於web根目錄的路徑如果不以 / 開頭,則是相對於當前包含JSP的路徑。 被包含的頁面可以是HTML,XML,JSP等。 用處:1、我們可以將網頁底部的著作權資訊 寫在一個單獨的jsp檔案中,然後其它頁面如果需要在頁面底部顯示著作權資訊,則可以通過include指令包含過去。 2、include指令可以在JSP頁面中出現任意次和任意位置。因此他常常用於構建view層的視圖模板骨架,例如head ,foot navi 都可以分離開來,並使用include包含。 當網頁的內容板式是固定的模式,只有一部分會變動時,include就很有用。
例子 檔案:index.jsp
<%@ page contentType= "text/html; charset=UTF-8" pageEncoding ="UTF-8" trimDirectiveWhitespaces= "true" session ="true"%><! DOCTYPE html><html><head><meta http-equiv = "Content-Type" content ="text/html; charset=UTF-8"><title> 標題</title></head><body><h1> 歡迎</h1><p> 啦啦啦啦啦啦 </p><%@ include file= "/WEB-INF/jspf/copyright.jsp" %></body></html>
檔案:copyright.jsp
位置:/WEB-INF/jspf/copyright.jsp
<%@ page pageEncoding="UTF-8"%><div style="width:1000px;height:100px;background:#F0F0F0"><p style =" text-align: center ;"> 我是著作權資訊 </p></div>
taglib指令 taglib顧名思義是一些標籤形成的庫。這些tag每個都有自己的執行邏輯,是對複雜的Java代碼的封裝。使用這些tag時,是用XML文法來寫,因此對於前端人員是友好的。使用tablig指令用於在JSP頁面中匯入 標籤庫 ,然後才可以使用。
<%@taglib uri="TagLibraryURL" prefix="tagPrefix" %>
uri: 標籤庫的路徑。如果標籤庫是以jar包形式給出的,則這裡填的是一個網址。prefix:標籤庫的首碼。每個標籤庫都有(首選的)建議的一個值,一般都會使用這個建議的值,以方便和其它的程式員達成一致。 例如:標籤庫以jar包形式給出<%@ taglib prefix ="c" uri= "http://java.sun.com/jsp/jstl/core" %> 例如:標籤庫沒有打包,而是存在工程中。uri指定是tld檔案的在web根目錄下的路徑<%@ taglib uri="/WEB-INF/tlds/myTaglib.tld" prefix="myPrefix" %>
使用JSTL的 <c:if> 標籤的例子
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" trimDirectiveWhitespaces="true" session="true"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body> <!--如果使用者存在,則顯示購物車和個人中心--> <c:if test="${sessionScope.user!=null}"> <li>購物車</li> <li><a href="userCenter.jsp">個人中心 </a></li> </c:if></body></html>
【JSP】JSP指令