1. 程式人生 > >Jsp語法和九大隱式物件

Jsp語法和九大隱式物件

一、什麼是JSP

JSP全稱為Java Server Pages,它是一種用於開發動態web資源的技術。JSP允許在html頁面中巢狀java程式碼在,主要作用是為使用者提供動態資料

二、JSP語法

JSP模板元素

jsp的模板元素就是指的是html,html為jsp頁面提供基本骨架支撐,定義頁面的結構和外觀。

2.1 JSP表示式

jsp指令碼表示式用於將程式資料輸出到客戶端
<%= 變數或表示式 %>
舉例:當前時間:<%= new java.util.Date %>
執行原理:jsp引擎在翻譯指令碼表示式是,會將程式資料轉換成字串,然後在相應的位置用out.print(…)將資料輸出給客戶端。

2.2 JSP指令碼片段

jsp指令碼片斷用於在jsp頁面中編寫多行的java程式碼
e.g:
<%
多行java程式碼
%>
注意:
1.多行程式碼之間可以相互聯絡。多個指令碼片斷中的程式碼可以相互訪問,猶如將所有的程式碼放在一對<%%>之中的情況。
2.jsp指令碼片斷必須嚴格執行java語法

2.3 JSP宣告

jsp宣告可用於定義jsp頁面轉換成Servlet程式的靜態程式碼塊成員變數方法

2.4 JSP註釋

2.5 JSP指令

JSP指令(directive)是為JSP引擎而設計的,它們並不直接產生任何可見輸出,而只是告訴引擎如何處理JSP頁面中的其餘部分。
- page指令
- Include指令
- taglib指令
語法格式:
<%@指令 屬性名=“值”%>
e.g:<%@page contenType=”text/html;charset=utf-8”%>
指令的屬性可以有一個或者多個屬性,並且不同屬性可以分開寫

Page指令

Page指令用於定義頁面的各種屬性,它作用於整個jsp頁面。一般放在jsp頁面的起始位置
相關語法
<%@page
language=”java”
extends=”package.class”
import=”package.class”導包
session=”true|false” 禁止或者允許session
errorPage=”url”
erorPage屬性的設定值必須使用相對路徑,以“/”開頭表示相對域當前web應用程式的根目錄
可通過web.xml檔案使用元素為整個web應用程式設定錯誤處理的頁面
指定異常類的完全限定名
指定以“/”開頭的錯誤處理頁面的路徑
注意:jsp頁面的errorpage屬性,優先於web.xml檔案的處理錯誤頁面的作用。

taglib指令

Taglib指令用於在JSP頁面中匯入標籤庫,

三、JSP九大隱式物件

Request
Response
Session
Application 也就是ServletContext
config 也就是 servletConfig
Page this
Exception 注意,別漏了
out
PageContext(最重要的隱式)

out

out隱式物件用於向客戶機發送文字資料
out是一個帶有快取區的輸出流
因此out.writer(“data”)相比於response.getwriter(“data”)輸出的資料會慢。

3.1PageContext物件

pageContext物件,
封裝了對其八大隱式物件的引用;
自身自帶一個域物件,可以儲存資料
封裝了web開發中經常用的一些操作(引入、跳轉其他資源、甚至可以檢索其他域物件的屬性findAttribute(),這個是一個逆天的方法,十分好用)
-通過pageContext獲得其他物件
getException 返回exception隱式物件
getPage 返回page隱式物件
getRequest 返回request隱式物件
getResponse 返回response隱式物件
getServletConfig 返回config隱式物件
getServletContext 返回application隱式物件
getSession 返回session隱式物件
getOut 返回out隱式物件
-pageContext作為域物件
1、pageContext物件的方法
public void setAttribute(java.lang.String name,java.lang.Object value)
public java.lang.Object getAttribute(java.lang.String name)
public void removeAttribute(java.lang.String name)
2、pageContext物件中還封裝了訪問其它域的方法
public java.lang.Object getAttribute(java.lang.String name,int scope)
public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
public void removeAttribute(java.lang.String name,int scope)
3、代表各個域的常量
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE

3.2引入和跳轉到其他資源

PageContext類中定義了一個forward方法和兩個include方法來分別簡化和替代RequestDispatcher.forward方法和include方法。

3.3 Jsp標籤

jsp標籤用於在jsp頁面中提供業務邏輯,避免在jsp頁面中直接寫java程式碼,造成jsp頁面難以維護。
有以下常用標籤:

作用:把另一個資源的輸出內容插入到當前jsp頁面的輸出內容,稱為動態引入