JSP基本文法總結【1】(jsp工作原理,指令碼元素,指令元素,動作元素)

來源:互聯網
上載者:User

標籤:blog   目錄結構   客戶   處理   父類   string   對象   ati   png   

  時隔半年,回頭對jsp複習整理一下,溫故而知新。

 

jsp工作原理:

  jsp伺服器管理jsp頁面分兩個階段:轉換階段(translation phase)和執行階段(execution phase)。

  客戶發送請求時,伺服器檢驗jso文法是否正確,然後轉換成servlet源檔案,然後調用javac工具類便宜servlet源檔案產生class檔案,此階段為轉換階段。

  接下來,servlet容器載入轉換後的servlet類,執行個體化一個對象來處理用戶端的請求。請求處理後,響應對象被jsp伺服器接收,伺服器以html格式的響應資訊發送到用戶端。此階段為執行階段。

 

web應用的目錄結構:

這個是有瞭解一下的必要的,無論你用什麼IDE,你建立一個web project,都會預設給你一個目錄結構。常見的如下:

目錄

描述

/jsp_example

根目錄,放置所有jsp和html檔案

/jsp_example/WEB-INF

存放web.xml和自訂標籤檔案*.tld

/jsp.example/WEB-INF/classes

存放各種class檔案,servlet檔案

/jsp.example/WEB-INF/lib

放置web應用所需的各種jar檔案(例如串連資料庫的驅動載入類)

▲此處解讀一下web.xml

javaweb應用通過一個基於xml的發布描述符檔案來配置其發布資訊。該檔案中主要包含如下配置資訊:

1’servlet定義;

2‘servlet的初始化參數;

3’servlet以及jsp的映射;

4‘Filter的定義;

5’安全網域設定參數;

6‘welcome檔案清單;

7’資源引用;

8‘環境變數的定義。

 

jsp基本文法

  jsp網頁分為指令碼和網頁資料兩部分。

    後者為jsp伺服器不處理的部分;而指令碼必須經由jsp伺服器處理,大部分指令碼以xml作為文法基礎,大小寫必須一致。

    指令碼分為四種類型:編譯指令;jsp指令碼;動作標籤;運算式語言(EL)。  

 

(1)jsp兩種注釋方法:

  1‘  html注釋,用戶端可以看到(瀏覽器頁面,右擊查看原始碼時)

        <!--  comment -->

  2’  jsp注釋,程式員的批註,不顯示在用戶端上(反上)

        <%-- comment --%>

(2)指令碼元素:

  1‘  聲明語句,聲明變數或者函數

        <%!  int i=0;  %>

  2‘  jsp指令碼(scriptlet),包含一個有效程式段

        <%   out.println("lalala,la!");   %>

  3‘  運算式,直接輸出顯示(結果)

        <%= expression %>

   (3) jsp三個編譯指令:

  格式:  <%@    ........   %>

  1‘  page指令,為設定整個jsp網頁的屬性以及相關功能。文法如下:

        <%@ page   language="java"  import="java.util.*"   pageEncoding="ISO-8859-1"   %>

▲常見指令參數:   

1、language屬性

 

設定jsp頁面使用的語言,目前只支援java,預設值為java

 <%@ page language="java" %>  

2、extends屬性

 

設定jsp頁面繼承的java類,jsp頁面在執行之前都會被伺服器解析成Servlet,而Servlet是由java類定義的,所以jsp和Servlet都可以繼承指定的父類,該屬性不常用,可能影響伺服器的效能最佳化。

 

3、import屬性

 

設定JSP匯入的類包,嵌入的java程式碼片段需要匯入相應的類包。

 <%@ page import="java.util.*" %>  

4、pageEncoding屬性

 

指定頁面編碼格式,如果設定為ISO-8859-1,則頁面不支援中文,通常設定為GBK或者UTF-8

 <%@ page pageEncoding="GB18030"%>  

5、contentType屬性

設定頁面的MIME類型和編碼

 <%@ page contentType="text/html; charset=UTF-8"%>  

6、session屬性

指定頁面是否使用HTTP的session會話對象,預設值為true

 <%@ page session="true"%>  

7、buffer屬性

設定頁面out輸出對象的緩衝區大小,預設為8KB,單位只能使用KB,建議使用8的倍數作為屬性值

 <%@ page buffer="128kb"%>  

8、autoFlush屬性

 

設定頁面緩衝滿時,是否自動重新整理緩衝,預設為true,如果設定成false,則緩衝滿時會拋出異常

<%@ page autoFlush="false"%>  

 

9、isErrorPage屬性

 

可以將當前版面設定成錯誤處理頁面來處理另一個JSP頁面的錯誤,也就是作為異常處理頁面

 

<%@ page isErrorPage="true"%>  

10、errorPage屬性

 

設定當前頁面的異常處理頁面,對應的異常處理頁面isErrorPage必須設定為true,如果設定該屬性,那麼在web.xml檔案中定義的任何錯誤處理頁面都將被忽略,優先使用該屬性定義的異常處理頁面。

 

  

  2’  include指令,在jsp檔案中包含一個靜態檔案,同時解析檔案中的jsp語句

          <@ include file="a.jsp"  @>

      ▲注意與  jsp:include  的區別

  3‘  taglib指令,引入標籤庫,能夠讓使用者自訂新的標籤。例如:

          <%@ taglib   uri="URIToTagLibrary"   prefix="tagprefix"  %>

        uri指指定標籤庫存放位置,prefix指指定標籤庫使用的首碼,用來區分多個自訂標籤。

 

  (4)jsp動作元素

      1’  <jsp:forward   page="loginsuccess.jsp"   />     forward標籤跳轉頁面,page值可以給出,也可以在請求時動態計算。

        2‘  <jsp:include  page="a.jsp"   />    動態插入檔案

        3‘  <jsp:useBean   id="name"  class="package.class"  />   可發揮java組件重用,通過<jsp:setProperty  />設定Bean屬性,通過<jsp:getProperty  />讀取Bean。

        4’  <jsp: param   />

        5‘  <jsp: plugin  />

        6‘  <jsp:params   />

        7‘  <jsp:fallback   />       (後幾個不常用,不做詳解)

 

 

                路漫漫其修遠兮,吾將上下而求索。

                窮則獨善其身,學習之路深遠!甚遠!

 

    (本人原創,未經同意,不得轉載,謝謝)

 

JSP基本文法總結【1】(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.