1. 程式人生 > >JSP九大內建物件,七大動作,三大指令

JSP九大內建物件,七大動作,三大指令

JSP之九大內建物件

隱藏物件入門探索

Servlet 和JSP中輸出資料都需要使用out物件。Servlet 中的out物件是通過getWriter()方法獲取的。而JSP中沒有定義out物件卻可以直接使用。這是因為out是JSO的內建隱藏物件。JSP中的常見的9個內建隱藏物件如下
這裡寫圖片描述

out輸出流物件

  隱藏物件out是javax.servlet.jsp.JspWriter類的例項伺服器向客戶輸出的字元內容可以通過out物件輸出。獲取方法: PrintWriter out = response.getWriter();out物件常用的方法如下:
1   void clear()   清除緩衝區的內容
2   void clearBuffer()

  清除緩衝區的當前內容
3   void flush()   將緩衝內容flush到客戶端瀏覽器
4   int getBufferSize()   返回緩衝大小,單位KB
5   int getRemaining()   返回緩衝剩餘大小,單位KB
6   isAutoFlush()   返回緩衝區滿時,是自動清空還是丟擲異常
7   void close()    關閉輸出流

request請求物件

  隱藏物件request是javax.servlet.ServletRequest類的例項,代表客戶端的請求。request包含客戶端的資訊以及請求的資訊,如請求那個檔案,附帶的地址引數等。每次客戶端的請求都會產生一個request例項。request物件的常用方法如


1   object getAttribute(String name)   返回指定屬性的屬性值
2   Enumeration getAttributeNames()    返回所有可用屬性名的列舉
3  String getCharacterEncoding()   返回字元編碼方式
4   int getContentLength()   返回請求體的長度(以位元組數)
5   String getContentType()   得到請求體的MIME型別
6   ServletInputStream getInputStream()   得到請求體中一行的二進位制流
7   String getParameter(String name)
  返回name指定引數的引數值
8   Enumeration getParameterNames()   返回可用引數名的列舉
9   String[] getparameterValues(String name)    返回包含引數name的所有值的陣列
10   String getProtocol()   返回請求用的協議型別及版本號
11   String getScheme()   返回請求用的計劃名,如:http https及ftp等
12   int getServerPort()   返回伺服器接受此請求所用的埠號
13   String getServerName()    返回接受請求的伺服器主機名
14   BufferedReader getReader()    返回解碼過了的請求體
15   String getRemoteAddr()    返回傳送此請求的客戶端IP地址
16   String getRemoteHost()   返回傳送此請求的客戶端主機名
17   void setAttribute(String key Object obj)   設定屬性的屬性值
18   String getRealPath(String path)   返回一虛擬路徑的真實路徑
19   void setCharacterEncoding(“gb2312”)   設定接受引數的字符集

response響應物件

  隱藏物件response是javax.servlet.ServletResponse類的例項,代表客戶端的響應。伺服器端的任何輸出都通過response物件傳送到客戶端瀏覽器。每次伺服器端都會響應一個response例項。response物件的常用方法如下:
1   String getCharacterEncoding()    返回響應用的是何種字元編碼
2   ServletOutputStream getOutputStream()   返回響應的一個二進位制輸出流
3   PrintWriter getWriter()   返回可以向客戶端輸出字元的一個物件
4    void setContentLength(int len)   設定響應頭長度
5   void setContentType(String type)   設定響應的MIME型別
6   sendRedirect(java.lang.String location)   重新定向客戶端的請求
7   void setCharacterEncoding(“gb2312”)   設定響應頭的字符集

config配置物件

  隱藏物件config是javax.servlet.ServletConfig類的例項,ServletConfig封裝了配置在web.xml中初始化JSP的引數。JSP中通過config獲取這些引數。每個JSP檔案中共有一個config物件。config物件的常用方法如表:
1  String getInitParameter(String name)  返回配置在web.xml中初始化引數
2  Enumeration getInitParameterNames()   返回所有的初始化引數名稱
3  ServletContext getServletContext()  返回ServletContext物件
4  String getServletName  返回Servlet物件

session會話物件

  隱藏物件session是javax.servlet.http.HttpSession類的例項。session與cookie是記錄客戶訪問資訊的兩種機制,session是用於伺服器端儲存使用者資訊,cookie用於在客戶端儲存使用者資訊。Servlet中通過request.getSession()來獲取session物件,而JSP中可以直接使用。如果JSP中配置了<%@page session=”false”%>,則隱藏物件session不可用。每個使用者對應一個session物件。session物件的常用方法如下:
1   long getCreationTime()   返回Session建立時間
2   public String getId()   返回Session建立時JSP引擎為它設的唯一ID號
3   long getLastAccessedTime()   返回此Session裡客戶端最近一次請求時間
4   int getMaxInactiveInterval()   返回兩次請求間隔多長時間此Session被取消(ms)
5   String[] getValueNames()   返回一個包含此Session中所有可用屬性的陣列
6   void invalidate()  取消Session,使Session不可用
7   boolean isNew()   返回伺服器建立的一個Session,客戶端是否已經加入
8   void removeValue(String name)   刪除Session中指定的屬性
9   void setAttribute(String key,Object obj)   設定Session的屬性
10, Object getAttribute(String name)   返回session中屬性名為name的物件

application應用程式物件

  隱藏物件application是javax.servlet.ServletContext類的物件。application封裝JSP所在Web應用程式的資訊,例如web.xml中國配置的全域性的初始化資訊。Servlet中application物件需要通過ServletConfig.getServletContext()來獲取。整個Web應用程式對應一個application物件。application物件常用的方法如下:
1,  Object getAttribute(String name)  返回application中屬性為name的物件
2,  Enumeration getAttributeNames()   返回application中的所有屬性名
3,  void setAttribute(String name,Object value)  設定application屬性
4,  void removeAttribute(String name)   移除application屬性
5,  String getInitParameter(String name)  返回全域性初始話函式
6,  Enumeration getInitParameterNames()  返回所有的全域性初始話引數
7,  String getMimeType(String filename)  返回檔案的文件型別,例如getMimeType(“abc.html”)將返回“text.html”
8,  String getRealPath(String relativePath)  返回Web應用程式內相對網址對應的絕對路徑

page頁面物件

  隱藏物件page是javax.servlet.jsp.HttpJspPage類的例項。page物件代表當前JSP頁面,是當前JSP編譯後的Servlet類的物件。page想當於Java類中的關鍵字this

pageContext頁面上下文物件

  隱藏物件pageContext為javax.servlet.jsp.PageContext類的例項。pageContext物件代表當前JSP頁面編譯後的內容。通過pageContext能夠獲取到JSP中的資源。pageContext常用方法如下:
1    JspWriter getOut()   返回out物件
2    HttpSession getSession()    返回Session物件(session)
3    Object getPage()   返回page物件
4    ServletRequest getRequest()    返回request物件
5    ServletResponse getResponse()    返回response物件

6    void setAttribute(String name,Object attribute)    設定屬性及屬性值 ,在page範圍內有效
7    void setAttribute(String name,Object obj,int scope)   在指定範圍內設定屬性及屬性值 ,int1=page,2=request,3=session,4=application
8   public Object getAttribute(String name)   取屬性的值
9   Object getAttribute(String name,int scope)   在指定範圍內取屬性的值
10   public Object findAttribute(String name)   尋找一屬性,返回起屬性值或NULL
11   void removeAttribute(String name)   刪除某屬性
12   void removeAttribute(String name,int scope)    在指定範圍刪除某屬性
13   int getAttributeScope(String name)   返回某屬性的作用範圍
14  Enumeration getAttributeNamesInScope(int scope)   返回指定範圍內可用的屬性名列舉
15   void release()   釋放pageContext所佔用的資源
16  void forward(String relativeUrlPath)    使當前頁面重導到另一頁面
17   void include(String relativeUrlPath)    在當前位置包含另一檔案

Eexception異常物件

  隱藏物件exception為java.lang.Exception類的物件。exception封裝了JSP中丟擲的異常資訊。要使用exception隱藏物件,需要設定<%@page isErrorPage”true”%>。隱藏物件exception通常被用來處理錯誤頁面,
  

JSP之三大指令

page指令

例項:<%@ page language=”java” import=”java.util.*” pageEncoding=”UTF-8”%>
import:等同與import語句
<%@ page import=”java.util.*” %>
<%@ page import=”java.util., java.net.” %>
在一個JSP頁面中可以給出多個page指令,而且import是可以重複出現的
<%@ page import=”java.util.*” %>
<%@ page import=”java.next.*” %>

pageEncoding:指定當前頁面的編碼
如果pageEncoding沒有指定,那麼預設為contentType的值;
如果pageEncoding和contentType都沒有指定,那麼預設值為iso-8859-1

contentType:等同與呼叫response.setContentType(“text/html;charset=xxx”);
如果沒有指定contentType屬性,那麼預設為pageEncoding的值;
如果contentType和pageEncoding都沒有指定,那麼預設值為iso-8859-1

errorPage:如果當前頁面出現異常,那麼跳轉到errorPage指定的jsp頁面。
例如:<%@ page errorPage=”b.jsp” %>
isErrorPage:上面示例中指定b.jsp為錯誤頁面,但在b.jsp中不能使用內建物件exception,保有b.jsp中使用<%@page isErrorPage=”true”%>時,才能在b.jsp中使用錯誤頁面。
autoFlush:當autoFlush為true時,表示out流緩衝區滿時會自動重新整理。預設為true
buffer:指定out流的緩衝區大小,預設為8KB
isELIgnored:當前JSP頁面是否忽略EL表示式,預設為false,表示不忽略,即支援EL表示式

page指令不常用的屬性:
language:當前JSP編譯後的語言!預設為java,當前也只能選擇java
info:當前JSP的說明資訊
isThreadSafe:當前JSP是否執行只能單執行緒訪問,預設為false,表示支援併發訪問
session:當前頁面是否可以使用session,預設為false,表示支援session的使用。
extends:指定JSP編譯的servlet的父類!
Page指令相關的屬性

include指令

JSP可以通過include指令來包含其他檔案。被包含的檔案可以是JSP檔案、HTML檔案或文字檔案。包含的檔案就好像是該JSP檔案的一部分,會被同時編譯執行。
Include指令的語法格式如下:
<%@ include file=”檔案相對 url 地址” %>

taglib指令

taglib指令是用來在當前jsp頁面中匯入第三方的標籤庫
<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” % prefix=”c” >
prefix:指定標籤字首,這個東西可以隨意起名
uri:指定第三方標籤庫的uri(唯一標識)
當然,需要先把第三方標籤庫所需jar包放到類路徑中。

JSP之七大動作

jsp:include:在頁面被請求的時候引入一個檔案。
jsp:useBean:尋找或者例項化一個 JavaBean。
jsp:setProperty:設定 JavaBean 的屬性。
jsp:getProperty:輸出某個 JavaBean 的屬性。
jsp:forward:把請求轉到一個新的頁面。
jsp:plugin:根據瀏覽器型別為 Java 外掛生成 OBJECT 或 EMBED 標記
詳細檢視:JSP 動作元素 | 菜鳥教程 .