更新時(shí)間:2021年06月08日17時(shí)22分 來(lái)源:傳智教育 瀏覽次數(shù):
(1)問(wèn)題分析:
考官主要想考核一下你前端知識(shí)的基本功,與之同類的問(wèn)題可能還會(huì)問(wèn)一下四大作用域以及OSI七層物理模型以及常用標(biāo)簽、作用等基礎(chǔ)知識(shí)。
(2)核心答案講解:
1)request對(duì)象
request 對(duì)象是 javax.servlet.httpServletRequest類型的對(duì)象。 該對(duì)象代表了客戶端的請(qǐng)求信息,主要用于接受通過(guò)HTTP協(xié)議傳送到服務(wù)器的數(shù)據(jù)。(包括頭信息、系統(tǒng)信息、請(qǐng)求方式以及請(qǐng)求參數(shù)等)。request對(duì)象的作用域?yàn)橐淮握?qǐng)求。
2)response對(duì)象
response 代表的是對(duì)客戶端的響應(yīng),主要是將JSP容器處理過(guò)的對(duì)象傳回到客戶端。response對(duì)象也具有作用域,它只在JSP頁(yè)面內(nèi)有效。
3)session對(duì)象
session 對(duì)象是由服務(wù)器自動(dòng)創(chuàng)建的與用戶請(qǐng)求相關(guān)的對(duì)象。服務(wù)器為每個(gè)用戶都生成一個(gè)session對(duì)象,用于保存該用戶的信息,跟蹤用戶的操作狀態(tài)。session對(duì)象內(nèi)部使用Map類來(lái)保存數(shù)據(jù),因此保存數(shù)據(jù)的格式為 “Key/value”。 session對(duì)象的value可以使復(fù)雜的對(duì)象類型,而不僅僅局限于字符串類型。
4)application對(duì)象
application 對(duì)象可將信息保存在服務(wù)器中,直到服務(wù)器關(guān)閉,否則application對(duì)象中保存的信息會(huì)在整個(gè)應(yīng)用中都有效。與session對(duì)象相比,app ut 對(duì)象
out 對(duì)象用于在Web瀏覽器內(nèi)輸出信息,并且管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)。在使用 out 對(duì)象輸出數(shù)據(jù)時(shí),可以對(duì)數(shù)據(jù)緩沖區(qū)進(jìn)行操作,及時(shí)清除緩沖區(qū)中的殘余數(shù)據(jù),為其他的輸出讓出緩沖空間。待數(shù)據(jù)輸出完畢后,要及時(shí)關(guān)閉輸出流。
6)pageContext 對(duì)象
pageContext 對(duì)象的作用是取得任何范圍的參數(shù),通過(guò)它可以獲取 JSP頁(yè)面的out、request、reponse、session、application 等對(duì)象。pageContext對(duì)象的創(chuàng)建和初始化都是由容器來(lái)完成的,在JSP頁(yè)面中可以直接使用 pageContext對(duì)象。
7)config 對(duì)象
config 對(duì)象的主要作用是取得服務(wù)器的配置信息。通過(guò) pageConext對(duì)象的 getServletConfig() 方法可以獲取一個(gè)config對(duì)象。當(dāng)一個(gè)Servlet 初始化時(shí),容器把某些信息通過(guò) config對(duì)象傳遞給這個(gè) Servlet。 開發(fā)者可以在web.xml 文件中為應(yīng)用程序環(huán)境中的Servlet程序和JSP頁(yè)面提供初始化參數(shù)。
8)page 對(duì)象
page 對(duì)象代表JSP本身,只有在JSP頁(yè)面內(nèi)才是合法的。 page隱含對(duì)象本質(zhì)上包含當(dāng)前 Servlet接口引用的變量,類似于Java編程中的 this 指針。
9)exception 對(duì)象
exception 對(duì)象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁(yè)面中才可以被使用,在一般的JSP頁(yè)面中使用該對(duì)象將無(wú)法編譯JSP文件。excepation對(duì)象和Java的所有對(duì)象一樣,都具有系統(tǒng)提供的繼承結(jié)構(gòu)。exception 對(duì)象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關(guān)鍵字來(lái)處理異常情況; 如果在JSP頁(yè)面中出現(xiàn)沒有捕獲到的異常,就會(huì)生成 exception 對(duì)象,并把 exception 對(duì)象傳送到在page指令中設(shè)定的錯(cuò)誤頁(yè)面中,然后在錯(cuò)誤頁(yè)面中處理相應(yīng)的 exception 對(duì)象。
(3)問(wèn)題擴(kuò)展
Jsp四大作用域及其作用:
四個(gè)作用域從大到?。篴ppliaction>session>request>page
● application:全局作用范圍,整個(gè)應(yīng)用程序共享.生命周期為:應(yīng)用程序 啟動(dòng)到停止;
● session:會(huì)話作用域,當(dāng)用戶首次訪問(wèn)時(shí),產(chǎn)生一個(gè)新的會(huì)話,以后服 務(wù)器就可以記住這個(gè)會(huì)話狀態(tài);
● request:請(qǐng)求作用域,就是客戶端的一次請(qǐng)求;
● page:一個(gè)JSP頁(yè)面。
以上作用范圍使越來(lái)越小, request和page的生命周期都是短暫的,他 們之間的區(qū)別就是:一個(gè)request可以包含多個(gè)page頁(yè)(include, forward)。
(4)結(jié)合項(xiàng)目中使用
舉例:request對(duì)象
1)獲取數(shù)據(jù)
getParameter;;接收請(qǐng)求參數(shù)的,
2)對(duì)全部數(shù)據(jù)進(jìn)行再編碼
public byte[] getBytes(“encoding”)
例如以下實(shí)例將byte數(shù)組編碼轉(zhuǎn)換
<%@ page contentType="text/html";charset=gbk"%> <% //接收內(nèi)容 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")); %>
輸入內(nèi)容為:<%=name%>
3)設(shè)置統(tǒng)一的請(qǐng)求編碼
public void setCharacterEncoding(String env) throws UnsunpportedEncodingException
例如以下設(shè)置
<%@ page contentType="text/html";charset=gbk"%> <% //接收內(nèi)容 request.setCharacterEncoding("GBK"); String name= request.getParameter("uname"); %>輸入內(nèi)容為:<%=name%>
其他舉例Demo:https://download.csdn.net/download/a_blackmoon/10940085
北京校區(qū)