1. 程式人生 > >JSP中九大內置對象和四大作用域

JSP中九大內置對象和四大作用域

parameter 文字 其他 fig ons this 單獨 內置 odin

一共有九大內置對象:

request、response、out、session、application、pageContext、page、config、exception

內置對象(又叫隱含對象),就是在jsp中,不需要創建(由服務器<容器>來創建),可以直接使用的對象。

request 請求對象  類型 javax.servlet.ServletRequest 作用域 Request

response 響應對象 類型 javax.servlet.SrvletResponse 作用域 Page

pageContext 頁面上下文對象 類型 javax.servlet.jsp.PageContext 作用域 Page

session 會話對象 類型 javax.servlet.http.HttpSession 作用域 Session

application 應用程序對象 類型 javax.servlet.ServletContext 作用域 Application

out 輸出對象 類型 javax.servlet.jsp.JspWriter 作用域 Page

config 配置對象 類型 javax.servlet.ServletConfig 作用域 Page

page 頁面對象 類型 javax.lang.Object 作用域 Page

exception 例外對象 類型 javax.lang.Throwable 作用域 page

page 當前頁面有效時間最短(頁面執行期)

request HTTP請求開始到結束這段時間

session HTTP會話開始到結束這段時間

application 服務器啟動到停止這段時間


out:所屬類JspWriter
request:實現了HttpServletRequest接口(此接口繼承於ServletRequest接口)
response:實現了HttpServletResponse接口(此接口繼承於ServletResponse接口)
session:實現了HttpSession接口
application對象實現的接口ServletContext

1.out對象:向客戶端輸出信息

主要有兩個方法,print和println,後者不能實現換行

舉例:輸出一段粗體文字
out.print("<b>這是一段粗體文字</b>");

我們可以用out.print向客戶端輸出任何信息,比如說輸出一個表格,等等。
在網頁上使用System.out.println(),信息輸出到控制臺上。

2.request對象:獲取客戶端傳遞到服務器的信息。

request常用方法舉例


(1)getParameter
獲取客戶端傳遞給服務器的一個參數的值
(2)getParameterNames
獲取客戶端傳遞給服務器的所有參數的名字
(3)getParameterValues
獲取一個參數的所有值(比如checkbox的情況)

(4)setAttribute
(5)getAttribute attribute=屬性
(6)removeAttribute
主要用在struts框架中

必須在同一次請求中設置的屬性,才能獲取到
(7)getAttributeNames


(8)getCookies,講Cookie的時候單獨講
cookie 小甜餅,把個人信息存放在客戶端的一門技術


(9)getCharacterEncoding

(10)getContentLength


(11)getMethod


(12)getRequestURL


(13)getRemoteAddr


(14)getServerName


(13)getServerPort


(14)getServletPath


(15)getContextPath


(16)getHeader,getHeaders,getHeaderNames

Header:網頁頭,網頁控制信息

request.getHeader("Referer") 來自的網頁

3.response對象: 向客戶端瀏覽器輸出信息,對客戶的請求做成響應

4.session: 會話失效時間 ,tomcat中默認是30分鐘,可以設置。 每個用戶的會話空間是隔離的。

5.application 應用對象

application,session,request:都可以通過setAttribute來設置屬性,用getAttribute來獲取屬性,但是可見範圍不一樣。
application對象所設置的屬性,所有會話可見,而session對象設置的屬性,只有在同一個session中可見。
同樣,前面講過的request,它所設置的屬性,只有在同一次請求之間可見。

application 不會過期,在整個服務器運行期間都有效,服務器重啟後丟失。

application的其他一些方法:

application.getRealPath()

6.page對象

JSP網頁本身,page對象是當前頁面轉換後的Servlet類的實例。從轉換後的Servlet類的代碼中,可以看到這種關系:Object page = this;在JSP頁面中,很少使用page對象。

7.config對象:主要作用是取得服務器的配置信息。
常用的方法有getInitParameter和getInitParameterNames,以獲得Servlet初始化時的參數。

通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發者可以在web.xml 文件中為應用程序環境中的Servlet程序和JSP頁面提供初始化參數。

8.exception對象
在可能產生錯誤的文件中用page指令指定errorpage
在所指定的errorpage中,設置isErrorPage="true"這個page指令,然後用exception對象獲取錯誤信息。
<%@page errorPage="error.jsp"%>

session也是需要在頁面上設置page指令的。

9.pageContext對象

作用:a.可以用它獲取其他八大內置對象的句柄(本身的句柄不用獲取)

out pageContext.getOut()
request pageContext.getRequest();
response pageContext.getResponse();
session pageContext.getSession();
application pageContext.getServletContext();
config pageContext.getServletConfig();
exception pageContext.getException();
page pageContext.getPage();


b.可以用它設置或者獲取4個不同範圍(page,request,session,application)內的變量的值


設置的值只能在本頁面內有效
pageContext.setAttribute ("name" , "John") ;


設置的值在同一個request請求中有效。
pageContext.setAttribute("name" , "John", PageContext.REQUEST_SCOPE))
相當於request.setAttribute("name" , "John");


設置的值在同一個session請求中有效。
pageContext.setAttribute("name" , "John", PageContext.SESSION_SCOPE))
相當於session.setAttribute("name" , "John");


設置的值在整個應用中有效。
pageContext.setAttribute("name" , "John", PageContext.APPLICATION_SCOPE))
相當於application.setAttribute("name" , "John");

JSP中九大內置對象和四大作用域