JSP九大內置對象
JSP有九個內置對象(又叫隱含對象)爬虱,不需要預先聲明就可以在腳本代碼和表達式中使用零酪,分別有四個作用域對象【從小到大:pageContext匀们、request谱秽、session暇赤、application】和五個其他對象【out冗栗、response演顾、config、page隅居、exception】
1钠至、pageContext對象
作用:pageContext 對象的作用是取得任何范圍的參數(shù),通過它可以獲取 JSP頁面的out胎源、request棉钧、reponse、session涕蚤、application 等對象宪卿。pageContext對象的創(chuàng)建和初始化都是由容器來完成的,在JSP頁面中可以直接使用 pageContext對象万栅。
生命周期:當前頁面
2佑钾、request對象
作用:request 對象是 javax.servlet.httpServletRequest類型的對象。 該對象代表了客戶端的請求信息申钩,主要用于接受通過HTTP協(xié)議傳送到服務器的數(shù)據(jù)次绘。(包括頭信息、系統(tǒng)信息撒遣、請求方式以及請求參數(shù)等)邮偎。生命周期:一次請求
常用方法如下:
? ? ? ? //1、設置字符編號集utf-8义黎,處理請求過程中的中文亂碼
? ? ? ? request.setCharacterEncoding("utf-8");
? ? ? ? //2禾进、按照參數(shù)名稱,獲取請求中的參數(shù)值
? ? ? ? request.getParameter("");
? ? ? ? //3廉涕、請求轉發(fā)【服務器】:服務器端直接轉發(fā)請求泻云,跳轉并執(zhí)行新頁面
? ? ? ? request.getRequestDispatcher("list_product.jsp").forward(request,response);
? ? ? ? //4艇拍、在請求轉發(fā)前,存入KV鍵值對
? ? ? ? request.setAttribute("key","value");
? ? ? ? //5宠纯、在請求轉發(fā)后卸夕,根據(jù)key獲取value
? ? ? ? request.getAttribute("key");
? ? ? ? //6、獲取當前應用在服務器端的真實路徑
? ? ? ? request.getRealPath("");
? ? ? ? //7婆瓜、項目運行時的應用的訪問名稱
? ? ? ? request.getContextPath();
? ? ? ? //8快集、獲取當前請求的方式
? ? ? ? request.getMethod();
? ? ? ? //9、獲取發(fā)起本次請求的客戶端IP地址
? ? ? ? request.getRemoteAddr();
? ? ? ? //10廉白、獲取服務器本地的IP地址
? ? ? ? request.getLocalAddr();
3个初、session對象
作用:session 對象是由服務器自動創(chuàng)建的與用戶請求相關的對象。服務器為每個用戶都生成一個session對象猴蹂,用于保存該用戶的信息院溺,跟蹤用戶的操作狀態(tài)。session對象內部使用Map類來保存數(shù)據(jù)磅轻,因此保存數(shù)據(jù)的格式為 “Key/value”珍逸。 session對象的key為String類型,value值為Object類型聋溜。
生命周期:開始于客戶端的第一次"請求"弄息;結束于 ①客戶端瀏覽器關閉? ?②客戶端請求超時(Tomcat默認為30分鐘)? ? ③服務器關閉
常用方法如下:
? ? ? ? //1、獲取當前Session會話對象
? ? ? ? HttpSessionsession=request.getSession();
? ? ? ? //2勤婚、獲取當前會話ID
? ? ? ? session.getId();
? ? ? ? //3、將當前KV鍵值對涤伐,存入Session會話(服務器端)
? ? ? ? session.setAttribute("key","value");
? ? ? ? //4馒胆、從當前Session會話中,根據(jù)key獲取value
? ? ? ? session.getAttribute("key");
? ? ? ? //5凝果、獲取當前Session 的創(chuàng)建時間
? ? ? ? newDate(session.getCreationTime());
? ? ? ? //6祝迂、本次會話最后一次訪問時間
? ? ? ? newDate(session.getLastAccessedTime());
4、application對象
作用:application 對象可將信息保存在服務器中器净,直到服務器關閉型雳,否則application對象中保存的信息會在整個應用中都有效。與session對象相比山害,application對象生命周期更長生命周期:開始于服務器啟動纠俭;結束于服務器關閉
常用方法如下:
? ? ? ? //1、獲取application對象
? ? ? ? ServletContextapplication=request.getServletContext();
? ? ? ? //2浪慌、獲取application的真實路徑
? ? ? ? application.getRealPath("");
? ? ? ? //3冤荆、獲取應用訪問名稱
? ? ? ? application.getContextPath();
? ? ? ? //4、獲取Session超時時間
? ? ? ? application.getSessionTimeout();
5权纤、out
作用:out 對象用于在Web瀏覽器內輸出信息钓简,并且管理應用服務器上的輸出緩沖區(qū)乌妒。在使用 out 對象輸出數(shù)據(jù)時,可以對數(shù)據(jù)緩沖區(qū)進行操作外邓,及時清除緩沖區(qū)中的殘余數(shù)據(jù)撤蚊,為其他的輸出讓出緩沖空間。待數(shù)據(jù)輸出完畢后损话,要及時關閉輸出流侦啸。
6、response
作用:response 代表的是對客戶端的響應席镀,主要是將JSP容器處理過的對象傳回到客戶端匹中。response對象也具有作用域,它只在JSP頁面內有效豪诲。
? ? ? ? //1顶捷、設置字符編碼集為utf-8,處理響應過程中的中文亂碼
? ? ? ? response.setContentType("text/html;charset=utf-8");
? ? ? ? //2屎篱、獲取響應輸出對象
? ? ? ? response.getWriter();
? ? ? ? //3服赎、重定向【客戶端】:通知客戶端瀏覽器,重新定向請求新的頁面地址交播,響應(輸出)新頁面至客戶端瀏覽器
? ? ? ? response.sendRedirect("index.html");
7重虑、config
作用:config 對象的主要作用是取得服務器的配置信息。通過 pageContext對象的 getServletConfig() 方法可以獲取一個config對象秦士。當一個Servlet 初始化時缺厉,容器把某些信息通過 config對象傳遞給這個 Servlet。
8隧土、page
作用:page 對象代表JSP本身提针,是當前頁面的Servlet實例,只有在JSP頁面內才是合法的曹傀。
9辐脖、exception
作用:exception 對象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中才可以被使用皆愉,在一般的JSP頁面中使用該對象將無法編譯JSP文件嗜价。如果在JSP頁面中出現(xiàn)沒有捕獲到的異常,就會生成 exception 對象幕庐,并把 exception 對象傳送到在page指令中設定的錯誤頁面中久锥,然后在錯誤頁面中處理相應的 exception 對象。