教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

JSP的九大內置對象是什么?JSP作用是什么?

更新時間:2021年06月08日17時22分 來源:傳智教育 瀏覽次數(shù):

傳智教育-一樣的教育,不一樣的品質

(1)問題分析:

考官主要想考核一下你前端知識的基本功,與之同類的問題可能還會問一下四大作用域以及OSI七層物理模型以及常用標簽、作用等基礎知識。

(2)核心答案講解:

1)request對象

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

2)response對象

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

3)session對象

session 對象是由服務器自動創(chuàng)建的與用戶請求相關的對象。服務器為每個用戶都生成一個session對象,用于保存該用戶的信息,跟蹤用戶的操作狀態(tài)。session對象內部使用Map類來保存數(shù)據(jù),因此保存數(shù)據(jù)的格式為 “Key/value”。 session對象的value可以使復雜的對象類型,而不僅僅局限于字符串類型。

4)application對象

application 對象可將信息保存在服務器中,直到服務器關閉,否則application對象中保存的信息會在整個應用中都有效。與session對象相比,app ut 對象

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

6)pageContext 對象

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

7)config 對象

config 對象的主要作用是取得服務器的配置信息。通過 pageConext對象的 getServletConfig() 方法可以獲取一個config對象。當一個Servlet 初始化時,容器把某些信息通過 config對象傳遞給這個 Servlet。 開發(fā)者可以在web.xml 文件中為應用程序環(huán)境中的Servlet程序和JSP頁面提供初始化參數(shù)。

8)page 對象

page 對象代表JSP本身,只有在JSP頁面內才是合法的。 page隱含對象本質上包含當前 Servlet接口引用的變量,類似于Java編程中的 this 指針。

9)exception 對象

exception 對象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁面中才可以被使用,在一般的JSP頁面中使用該對象將無法編譯JSP文件。excepation對象和Java的所有對象一樣,都具有系統(tǒng)提供的繼承結構。exception 對象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關鍵字來處理異常情況; 如果在JSP頁面中出現(xiàn)沒有捕獲到的異常,就會生成 exception 對象,并把 exception 對象傳送到在page指令中設定的錯誤頁面中,然后在錯誤頁面中處理相應的 exception 對象。

(3)問題擴展

Jsp四大作用域及其作用:

四個作用域從大到?。篴ppliaction>session>request>page

● application:全局作用范圍,整個應用程序共享.生命周期為:應用程序 啟動到停止;

● session:會話作用域,當用戶首次訪問時,產(chǎn)生一個新的會話,以后服 務器就可以記住這個會話狀態(tài);

● request:請求作用域,就是客戶端的一次請求;

● page:一個JSP頁面。

以上作用范圍使越來越小, request和page的生命周期都是短暫的,他 們之間的區(qū)別就是:一個request可以包含多個page頁(include, forward)。

(4)結合項目中使用

舉例:request對象

1)獲取數(shù)據(jù)

getParameter;;接收請求參數(shù)的,

2)對全部數(shù)據(jù)進行再編碼

public byte[] getBytes(“encoding”)

例如以下實例將byte數(shù)組編碼轉換

<%@ page contentType="text/html";charset=gbk"%>
       <%
           //接收內容
           String name=request.getParameter("uname");
           byte[] b=name.getBytes("ISO8859-1");
           name=new String(b);
           String name= new String(request.getParameter("uname").getBytes("ISO8859-1"));
       %>

輸入內容為:<%=name%>

3)設置統(tǒng)一的請求編碼

public void setCharacterEncoding(String env) throws UnsunpportedEncodingException

例如以下設置

<%@ page contentType="text/html";charset=gbk"%>
       <%
           //接收內容
           request.setCharacterEncoding("GBK");
           String name= request.getParameter("uname");
       %>
輸入內容為:<%=name%>

其他舉例Demo:https://download.csdn.net/download/a_blackmoon/10940085



猜你喜歡:

JSP作用域有幾個?JSP作用域詳解

JSP是什么?JSP是怎么運行的?

Java面試題之jsp相關知識點

傳智教育java 開發(fā)培訓

0 分享到:
和我們在線交談!