【JSP】JSP指令

來源:互聯網
上載者:User

標籤:例子   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指令

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.