JSP九大內(nèi)置對象


JSP九大內(nèi)置對象

JSP有九個內(nèi)置對象(又叫隱含對象),不需要預(yù)先聲明就可以在腳本代碼和表達(dá)式中使用,分別有四個作用域?qū)ο蟆緩男〉酱螅簆ageContext、request、session、application】和五個其他對象【out、response、config、page、exception】

1、pageContext對象

作用:pageContext 對象的作用是取得任何范圍的參數(shù),通過它可以獲取 JSP頁面的out、request、reponse、session、application 等對象。pageContext對象的創(chuàng)建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象。

生命周期:當(dāng)前頁面

2、request對象

作用:request 對象是 javax.servlet.httpServletRequest類型的對象。 該對象代表了客戶端的請求信息,主要用于接受通過HTTP協(xié)議傳送到服務(wù)器的數(shù)據(jù)。(包括頭信息、系統(tǒng)信息、請求方式以及請求參數(shù)等)。生命周期:一次請求

常用方法如下:

? ? ? ? //1、設(shè)置字符編號集utf-8,處理請求過程中的中文亂碼

? ? ? ? request.setCharacterEncoding("utf-8");

? ? ? ? //2、按照參數(shù)名稱,獲取請求中的參數(shù)值

? ? ? ? request.getParameter("");

? ? ? ? //3、請求轉(zhuǎn)發(fā)【服務(wù)器】:服務(wù)器端直接轉(zhuǎn)發(fā)請求,跳轉(zhuǎn)并執(zhí)行新頁面

? ? ? ? request.getRequestDispatcher("list_product.jsp").forward(request,response);

? ? ? ? //4、在請求轉(zhuǎn)發(fā)前,存入KV鍵值對

? ? ? ? request.setAttribute("key","value");

? ? ? ? //5、在請求轉(zhuǎn)發(fā)后,根據(jù)key獲取value

? ? ? ? request.getAttribute("key");

? ? ? ? //6、獲取當(dāng)前應(yīng)用在服務(wù)器端的真實(shí)路徑

? ? ? ? request.getRealPath("");

? ? ? ? //7、項(xiàng)目運(yùn)行時的應(yīng)用的訪問名稱

? ? ? ? request.getContextPath();

? ? ? ? //8、獲取當(dāng)前請求的方式

? ? ? ? request.getMethod();

? ? ? ? //9、獲取發(fā)起本次請求的客戶端IP地址

? ? ? ? request.getRemoteAddr();

? ? ? ? //10、獲取服務(wù)器本地的IP地址

? ? ? ? request.getLocalAddr();

3、session對象

作用:session 對象是由服務(wù)器自動創(chuàng)建的與用戶請求相關(guān)的對象。服務(wù)器為每個用戶都生成一個session對象,用于保存該用戶的信息,跟蹤用戶的操作狀態(tài)。session對象內(nèi)部使用Map類來保存數(shù)據(jù),因此保存數(shù)據(jù)的格式為 “Key/value”。 session對象的key為String類型,value值為Object類型。

生命周期:開始于客戶端的第一次"請求";結(jié)束于 ①客戶端瀏覽器關(guān)閉? ?②客戶端請求超時(Tomcat默認(rèn)為30分鐘)? ? ③服務(wù)器關(guān)閉

常用方法如下:

? ? ? ? //1、獲取當(dāng)前Session會話對象

? ? ? ? HttpSessionsession=request.getSession();

? ? ? ? //2、獲取當(dāng)前會話ID

? ? ? ? session.getId();

? ? ? ? //3、將當(dāng)前KV鍵值對,存入Session會話(服務(wù)器端)

? ? ? ? session.setAttribute("key","value");

? ? ? ? //4、從當(dāng)前Session會話中,根據(jù)key獲取value

? ? ? ? session.getAttribute("key");

? ? ? ? //5、獲取當(dāng)前Session 的創(chuàng)建時間

? ? ? ? newDate(session.getCreationTime());

? ? ? ? //6、本次會話最后一次訪問時間

? ? ? ? newDate(session.getLastAccessedTime());

4、application對象

作用:application 對象可將信息保存在服務(wù)器中,直到服務(wù)器關(guān)閉,否則application對象中保存的信息會在整個應(yīng)用中都有效。與session對象相比,application對象生命周期更長生命周期:開始于服務(wù)器啟動;結(jié)束于服務(wù)器關(guān)閉

常用方法如下:

? ? ? ? //1、獲取application對象

? ? ? ? ServletContextapplication=request.getServletContext();

? ? ? ? //2、獲取application的真實(shí)路徑

? ? ? ? application.getRealPath("");

? ? ? ? //3、獲取應(yīng)用訪問名稱

? ? ? ? application.getContextPath();

? ? ? ? //4、獲取Session超時時間

? ? ? ? application.getSessionTimeout();

5、out

作用:out 對象用于在Web瀏覽器內(nèi)輸出信息,并且管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)。在使用 out 對象輸出數(shù)據(jù)時,可以對數(shù)據(jù)緩沖區(qū)進(jìn)行操作,及時清除緩沖區(qū)中的殘余數(shù)據(jù),為其他的輸出讓出緩沖空間。待數(shù)據(jù)輸出完畢后,要及時關(guān)閉輸出流。

6、response

作用:response 代表的是對客戶端的響應(yīng),主要是將JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它只在JSP頁面內(nèi)有效。

? ? ? ? //1、設(shè)置字符編碼集為utf-8,處理響應(yīng)過程中的中文亂碼

? ? ? ? response.setContentType("text/html;charset=utf-8");

? ? ? ? //2、獲取響應(yīng)輸出對象

? ? ? ? response.getWriter();

? ? ? ? //3、重定向【客戶端】:通知客戶端瀏覽器,重新定向請求新的頁面地址,響應(yīng)(輸出)新頁面至客戶端瀏覽器

? ? ? ? response.sendRedirect("index.html");

7、config

作用:config 對象的主要作用是取得服務(wù)器的配置信息。通過 pageContext對象的 getServletConfig() 方法可以獲取一個config對象。當(dāng)一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。

8、page

作用:page 對象代表JSP本身,是當(dāng)前頁面的Servlet實(shí)例,只有在JSP頁面內(nèi)才是合法的。

9、exception

作用:exception 對象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP文件。如果在JSP頁面中出現(xiàn)沒有捕獲到的異常,就會生成 exception 對象,并把 exception 對象傳送到在page指令中設(shè)定的錯誤頁面中,然后在錯誤頁面中處理相應(yīng)的 exception 對象。

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

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