標籤: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工作原理,指令碼元素,指令元素,動作元素)