JSP基本語法總結【1】(jsp工作原理,腳本元素,指令元素,動作元素)
時隔半年,回頭對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工作原理,腳本元素,指令元素,動作元素)