1. 程式人生 > >JSP基本語法總結【1】(jsp工作原理,腳本元素,指令元素,動作元素)

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

ins 檢驗 welcome 域配置 ces 跳轉頁面 classes filter java代碼

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

jsp工作原理:

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

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

  接下來,servlet容器加載轉換後的servlet類,實例化一個對象來處理客戶端的請求。請求處理後,響應對象被jsp服務器接收,服務器以html格式的響應信息發送到客戶端。此階段為執行階段。

技術分享

web應用的目錄結構:

這個是有了解一下的必要的,無論你用什麽IDE,你創建一個web project,都會默認給你一個目錄結構。常見的如下:

目錄

描述

/jsp_example

根目錄,放置所有jsphtml文件

/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工作原理,腳本元素,指令元素,動作元素)