JSP基本文法小結

來源:互聯網
上載者:User
一、JSP運行原理:

當瀏覽器向Web應用伺服器請求一個JSP頁面時,Web應用伺服器將其轉換為一個Servlet檔案(即一個.Java檔案),然後將這個Java檔案編譯成一個位元組碼檔案(.class檔案),最後Web應用伺服器載入轉換後的Servlet執行個體,處理用戶端的請求,並返回HTML格式的響應回應給用戶端瀏覽器。

 

 

二、JSP頁面的組成:

JSP頁面由指令標識、HTML代碼、嵌入的Java指令碼程式以及注釋組成;其中JAVA指令碼程式是通過<%和%>來嵌入到HTML頁面中的。

 

 

三、JSP頁面的3種指令碼元素類型:運算式格式、小指令碼格式和聲明格式
    • 運算式格式:用於頁面中直接調用Java運算式,從而都得到傳回值,其基本文法如:<%=Java運算式/變數%>

 

    • 小指令碼格式:HTML中使用<%和%>來嵌入Java指令碼程式,從而進行相應的邏輯處理,基本文法下:<%…任意的Java代碼…%>
    • JSP聲明格式:用來定義Java指令碼語言中使用到的變數或者方法,其基本文法如下:<%!…Java聲明…%>
四、JSP的3個指令元素:

包含了page、include和taglib3個指令元素,其定義方法為:<%指令名[…一個或者多個指令屬性…]
%>

 

    • 頁面指令page:它用於對JSP檔案中的全域屬性進行設定,如JSP頁面的編碼、內容類型、引用的類庫等。舉例如下:

<%@ page import="java.text.SimpleDateFormat"%><br /><%@ page language="java" contentType="text/html; charset=UTF-8"<br />pageEncoding="UTF-8"%><br /> 

注意pageEncoding屬性和contentType屬性的區別


通常兩者同時存在,pageEncoding屬性的作用是指定JSP頁面的編碼格式,若其值非UTF-8,則頁面上的中文將會是亂碼;而contentType屬性的作用是指定伺服器出請求完成後回應給瀏覽器的內容類型,若其值設為”text/html;charset=utf-8”,說明伺服器回應的頁面是HTML文檔或常值內容,其字元集為支援中文的UTF-8。

    • 檔案包含指令include:include指令用於引用頁面外部的檔案,可以將一個JSP頁麵包含到另一個JSP頁面中,從而實現JSP頁面重用。其指令的文法格式為:<%@include
      file="path"%>     ;其中path為引用檔案的路徑

 

注意使用include指令最終將產生一個檔案,所以在被包含和包含的檔案中,不能有相同名稱的變數,否則會發生編譯錯誤。

 

技巧通常情況下,一個網站頁面頭部(banner)與頁面底部都是相同的,可以分別建立這兩個頁面,在通過include指令將其包含在其他頁面中,從而減少代碼冗餘。


    • 引用標籤庫指令taglib:用來引用一個標籤庫或者自訂標籤。通過taglib指令可以告訴容器此JSP頁面將使用哪些標籤庫,並可以給引用的標籤庫指定一個首碼。在JSP頁面中使用標籤庫可以簡化JSP頁面並減少使用Java代碼。常用的標籤庫有JSTL、Sturs標籤、Spring標籤等。taglib指令的文法格式為:<%@taglib
      prefix="tagPrefix"uri=”tagURL”%>  ;其中Prefix:指定標籤庫的首碼;uri=指定標籤庫檔案的位置;

 

例子:使用taglib指令引用標準標籤庫(JSTL)

<%@ taglib prefix="sql" uri=”http://java.sun.com/jsp/jstl/sql” %><br /><sql:query var=”book”><br />Select*from books<br /></sql:query><br /> 

 

五、JSP標準動作元素:

JSP標準動作元素的使用格式為:<jsp:標記名>,它採用嚴格的XML標籤文法來表示。這些JSP標籤動作元素是在使用者要求階段執行的(JSP執行的3個階段之一)。這些標準動作元素是內建在JSP檔案中的,可不需要引用,直接使用。

根據各個標準動作的功能,可將它們分成6組:

  1. JSP中使用到JavaBean的標準動作:<jsp:useBean>定義JSP頁面使用一個JavaBean執行個體,ID屬性定義了一個執行個體名稱;<jsp:getProperty>從一個JavaBean中擷取一個屬性值,並將其添加到響應中;<jsp:setProperty>設定一個JavaBean中的屬性值;
  2. 在JSP中包含其他JSP檔案或者Web資源的標準動作:<jsp:include>在請求處理階段包含來自一個Servlet或者JSP檔案的響應,注意與include指令的不同;
  3. 將到達的請求轉寄給另外一個JSP頁面或者Web資源以便進一步操作的標準動作:<jsp:forward>將某個請求的處理轉寄到另一個Servlet或者JSP頁面;
  4. 在其他標準動作的中間指定參數的標準動作:<jsp:param>對使用<jsp:include>或者<jsp:forward>傳遞到另外一個Servlet或者JSP頁面的請求添加一個傳遞參數值;
  5. 在用戶端的頁面中嵌入Java對象(例如applet,是運行在用戶端的小Java程式)的標準動作:<jsp:plugin>根據瀏覽器類型為Java外掛程式產生Object或者Embed標記;<jsp:params>,<jsp:fallback>;
  6. 僅僅英語標記檔案的標準動作:<jsp:attribute>,<jsp:body>,<jsp:invoke>,<jsp:dobody>,<jsp:element>,<jsp:text>,<jsp:output>。

 

 

常用的標準動作的功能簡述:

  1. <jsp:useBean>:定義JSP頁面使用一個JavaBean執行個體;
  2. <jsp:setProperty>:設定一個JavaBean中的屬性值;
  3. <jsp:getProperty>:擷取一個JavaBean中的屬性值;
  4. <jsp:include>:在JSP頁麵包含一個外在檔案;
  5. <jsp:forward>:把到達的請求轉交另一個頁面進行處理;
  6. <jsp:param>:用於傳遞參數值;
  7. <jsp:plugin>:用於指定在用戶端瀏覽器中插入外掛程式的屬性;
  8. <jsp:params>:用於向HTML頁面上的外掛程式外掛程式傳遞參數值;
  9. <jsp:fallback>:指定如何處理客戶不支援外掛程式啟動並執行情況;

補充:JSP執行的3個階段

  1. 被翻譯階段:編寫好的JSP檔案首先會被Web容器(在伺服器端)中的JSP引擎轉換成Java原始碼;
  2. 被編譯階段:Java原始碼會被編譯成二進位格式的可執行檔位元組碼;
  3. 要求階段:當容易接受了用戶端的請求後,就執行前面已經編譯策劃那個二進位位元組碼的JSP檔案。處理完請求後,容器再把產生的頁面反饋給用戶端進行顯示。

 

區別:認識include指令與<jsp:include>動作表示的本質區別

  1. include指令通過file屬性指定被包含的檔案,且file屬性不支援運算式;而<jsp:include>動作標識通過page屬性指定被包含的檔案,而且page屬性支援JSP運算式;
  2. 使用include指令時,被包含的檔案內容會原封不動的被插入到包含頁面中,然後JSP編譯器在將合成後的檔案最終編譯成一個Java檔案;而使用<jsp:include>動作標識執行時,程式會將請求轉寄到被包含頁面,並將執行結果輸出到瀏覽器中,然後返回包含頁繼續執行後面的代碼。
  3. 在應用include指令包含檔案時,由於被包含的檔案最終會產生一個檔案,所以在被包含檔案、包含檔案中不能有重名變數或方法;而在使用<jsp:include>動作標識包含檔案時,由於每個檔案是單獨編譯的,所以被包含檔案和包含檔案中重名的變數和方法是不衝突的。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.