JSP對象

JSP 九個隱含JSP對象http://www.cnblogs.com/bmbm/archive/2012/01/17/2342238.html
www.cnblogs.com/bmbm/archive/2012/01/17/2342238.html

一、request對象

? ? ? ? 客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然后做出響應(yīng)。它是HttpServletRequest類的實例

request常用方法方 法 說 明

1? object getAttribute(String name) 返回指定屬性的屬性值

(2? String getCharacterEncoding() 返回字符編碼方式)

3? getRequestDispatcher轉(zhuǎn)發(fā)request.getRequestDispatcher("t1.jsp").forward(request, response);?

4? String getParameter(String name) 返回name指定參數(shù)的參數(shù)值

5? String[] getParameterValues(String name) 返回包含參數(shù)name的所有值的數(shù)組

(6? String getProtocol() 返回請求用的協(xié)議類型及版本號)

(7? String getServerName() 返回接受請求的服務(wù)器主機名)

(8? int getServerPort() 返回服務(wù)器接受此請求所用的端口號)

9? String getRemoteAddr() 返回發(fā)送此請求的客戶端IP地址

(10? String getRemoteHost() 返回發(fā)送此請求的客戶端主機名)

11? void setAttribute(String key,Object obj) 設(shè)置屬性的屬性值

(12 String getContentType() 得到請求體的MIME類型 ) ??

歡迎:<%=request.getAttribute("name") %>? ? 請求方式:<%=request.getMethod()%>

請求的資源:<%=request.getRequestURI()%>

請求用的協(xié)議:<%=request.getProtocol()%>

請求的文件名:<%=request.getServletPath()%>

請求的服務(wù)器的IP:<%=request.getServerName()%>

請求服務(wù)器的端口:<%=request.getServerPort()%>

客戶端IP地址:<%=request.getRemoteAddr()%>

客戶端主機名:<%=request.getRemoteHost()%>

二、response對象

處理 JSP 生成的響應(yīng)

將響應(yīng)發(fā)送給客戶端,它是HttpServletResponse類的實例

1 PrintWriter getWriter() 返回可以向客戶端輸出字符的一個對象

2 void setContentType(String type) 設(shè)置響應(yīng)的MIME類型

3 sendRedirect(java.lang.String location) 重新定向客戶端的請求

面試:sendRedirect和getRequestDispatcher(即轉(zhuǎn)發(fā)和重定向的區(qū)別)

重定向response.sendRedirect("success.jsp");

轉(zhuǎn)發(fā):request.getRequestDispatcher("success.jsp").forward(request,response);

1轉(zhuǎn)發(fā):一次請求,一次響應(yīng)。地址欄的url不會改變。在服務(wù)器端執(zhí)行,所以必須在同一臺服務(wù)器上。轉(zhuǎn)發(fā)速度快。

可以通過request.getAttribute()獲取request.setAttribute()中的值

2重定向:兩次請求。地址欄的url會隨之改變?yōu)槎ㄏ蚝蟮哪莻€url。在客戶端執(zhí)行,所以可以在不同的服務(wù)器上。重定向速度慢。不能通過request.getAttribute()獲取request.setAttribute()中的值

三、out對象

out對象是JspWriter類的實例,是向客戶端輸出內(nèi)容常用的對象

序號 方 法 說 明

(1? void clear() 清除緩沖區(qū)的內(nèi)容)

(2? void clearBuffer() 清除緩沖區(qū)的當(dāng)前內(nèi)容)

3? void flush() 清空流

(4? int getBufferSize() 返回緩沖區(qū)以字節(jié)數(shù)的大小,如不設(shè)緩沖區(qū)則為0)

(5? int getRemaining() 返回緩沖區(qū)還剩余多少可用)

(6? boolean isAutoFlush() 返回緩沖區(qū)滿時,是自動清空還是拋出異常)

7? void close() 關(guān)閉輸出流

(8 print() 和println()輸出信息)

四、session對象

指的是客戶端與服務(wù)器的一次會話,從客戶連到服務(wù)器的一個WebApplication開始,直到客戶端與服務(wù)器斷開連接為止。

注:它的生命周期為瀏覽器不關(guān)閉或時間沒到(默認(rèn)時間為30分鐘)

常用方法:

1 session.setMaxInactiveInterval(2);//設(shè)置過期時間,單位為秒,默認(rèn)是30分鐘

2? void invalidate() 取消SESSION,使SESSION不可用

3boolean isNew() 返回服務(wù)器創(chuàng)建的一個SESSION,客戶端是否已經(jīng)加入(自:過期時間是否到)

(4? long getCreationTime() 返回SESSION創(chuàng)建時間)

(5? public String getId() 返回SESSION創(chuàng)建時JSP引擎為它設(shè)的惟一ID號)

(6? long getLastAccessedTime() 返回此SESSION里客戶端最近一次請求時間)

(7? int getMaxInactiveInterval() 返回兩次請求間隔多長時間此SESSION被取消(ms))

8 getAttribute(String name) 返回指定屬性的屬性值

9 void setAttribute(String key,Object obj) 設(shè)置屬性的屬性值

session是運行在服務(wù)器端案例,

注意:session的生命周期較長,一般開發(fā)中不宜使用過多存儲

五、application對象

application對象實現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它開始于服務(wù)器的啟動,直到服務(wù)器的關(guān)閉,在此期間,此對象將一直存在

方 法 說 明,通常用于開發(fā)計算器

1? Object getAttribute(String name) 返回給定名的屬性值

2? void setAttribute(String name,Object obj) 設(shè)定屬性的屬性值

(3? void removeAttribute(String name) 刪除一屬性及其屬性值)

(4? String getServerInfo() 返回JSP(SERVLET)引擎名及版本號)

(5? String getRealPath(String path) 返回一虛擬路徑的真實路徑)

(6? ServletContext getContext(String uripath) 返回指定WebApplication的application對象)

(7? int getMajorVersion() 返回服務(wù)器支持的Servlet API的最大版本號)

(8? int getMinorVersion() 返回服務(wù)器支持的Servlet API的最大版本號)

(9? String getMimeType(String file) 返回指定文件的MIME類型)

(10? URL getResource(String path) 返回指定資源(文件及目錄)的URL路徑)

<%!? int i=300000;? %>? <%? application.setAttribute("num", i++);? ? %>? ? 目前你是第<%=application.getAttribute("num") %>位訪問者

<%? ? out.print(application.getResource("q4.jsp"));? ? out.print("上下文路徑:"+application.getContextPath());? ? out.print("服務(wù)器信息:"+application.getServerInfo());? ? %>

六、exception對象

? ? ? ? exception對象是一個例外對象,當(dāng)一個頁面在運行過程中發(fā)生了例外,就產(chǎn)生這個對象。如果一個JSP頁面要應(yīng)用此對象,就必須把isErrorPage設(shè)為true,否則無法編譯。他實際上是java.lang.Throwable的對象

1? String getMessage() 返回描述異常的消息

2? String toString() 返回關(guān)于異常的簡短描述消息

3? void printStackTrace() 顯示異常及其棧軌跡

4? Throwable FillInStackTrace() 重寫異常的執(zhí)行棧軌跡

?1<%@ page language="java" contentType="text/html;charset=gb2312" import="java.util.*" isErrorPage="true"%><%=exception %>

2<%@ page language="java" contentType="text/html;charset=gb2312" errorPage="ExceptionDemo.jsp"%><%int[] arr = {1,2,4};out.println(arr[3]);%>

(自:出問題頁面 第一行加errorPage="error.jsp" error.jsp頁面 第一行加isErrorPage="true" 錯誤信息<%=exception%>)

七、page對象

page對象就是指向當(dāng)前JSP頁面本身,生存周期就是當(dāng)前頁,在實際開發(fā)中一般使用pageContext

八、pageContext對象

pageContext對象提供了對JSP頁面內(nèi)所有的對象及名字空間的訪問

九、config對象

config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數(shù)(通過屬性名和屬性值構(gòu)成)以及服務(wù)器的有關(guān)信息(通過傳遞一個ServletContext對象)

序號 方 法 說 明

1? ServletContext getServletContext() 返回含有服務(wù)器相關(guān)信息的ServletContext對象

2? String getInitParameter(String name) 返回初始化參數(shù)的值

隱式對象的作用域

page只能在本頁有效,request本頁或轉(zhuǎn)發(fā)頁有效,session只要瀏覽器不關(guān)都有效或在有效時間內(nèi)都有效,application只要服務(wù)器不關(guān)機都有效,即范圍大小為

page<request<session<application

pageContext.setAttribute("num0", 18);//作用域:本頁

request.setAttribute("num1",8);//作用域:本頁+轉(zhuǎn)發(fā)頁

//session作用域:本頁+任意打開的網(wǎng)頁(只要瀏覽器不關(guān)閉或默認(rèn)30分鐘)

session.setAttribute("num2", 88);

//application作用域:本頁+任意網(wǎng)頁(只要服務(wù)不重啟)

application.setAttribute("num3", 888);

<%? out.print("page作用域:"+pageContext.getAttribute("num0"));? out.print("

request作用域:"+request.getAttribute("num1"));? out.print("

session作用域:"+session.getAttribute("num2"));? out.print("

application作用域:"+application.getAttribute("num3"));? %>

表單亂碼new String(ss.getBytes("ISO-8859-1"), "utf-8")

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容