JSP運(yùn)行原理和九大隱式對(duì)象說(shuō)明
每個(gè)JSP 頁(yè)面在第一次被訪問(wèn)時(shí),WEB容器都會(huì)把請(qǐng)求交給JSP引擎(即一個(gè)Java程序)去處理。JSP引擎先將JSP翻譯成一個(gè)_jspServlet(實(shí)質(zhì)上也是一個(gè)servlet) ,然后按照servlet的調(diào)用方式進(jìn)行調(diào)用。
由于JSP第一次訪問(wèn)時(shí)會(huì)翻譯成servlet,所以第一次訪問(wèn)通常會(huì)比較慢,但第二次訪問(wèn),JSP引擎如果發(fā)現(xiàn)JSP沒(méi)有變化,就不再翻譯,而是直接調(diào)用,所以程序的執(zhí)行效率不會(huì)受到影響。
JSP引擎在調(diào)用JSP對(duì)應(yīng)的_jspServlet時(shí),會(huì)傳遞或創(chuàng)建9個(gè)與web開(kāi)發(fā)相關(guān)的對(duì)象供_jspServlet使用。JSP技術(shù)的設(shè)計(jì)者為便于開(kāi)發(fā)人員在編寫JSP頁(yè)面時(shí)獲得這些web對(duì)象的引用,特意定義了9個(gè)相應(yīng)的變量,開(kāi)發(fā)人員在JSP頁(yè)面中通過(guò)這些變量就可以快速獲得這9大對(duì)象的引用。
這9個(gè)對(duì)象分別是哪些,以及作用也是筆試經(jīng)??疾斓闹R(shí)點(diǎn)。
Jsp九大隱式對(duì)象
request //代表request對(duì)象
response //代表response對(duì)象
config //代表servletConfig對(duì)象
application //代表servletContext對(duì)象
exception
Session
page
out //代表response.getWriter() ,字符輸出流對(duì)象
pageContext
pageContext對(duì)象
pageContext對(duì)象是JSP技術(shù)中最重要的一個(gè)對(duì)象,它代表JSP頁(yè)面的運(yùn)行環(huán)境.
這個(gè)對(duì)象不僅封裝了對(duì)其它8大隱式對(duì)象的引用,
它自身還是一個(gè)域?qū)ο?,可以用?lái)保存數(shù)據(jù)。
并且,這個(gè)對(duì)象還封裝了web開(kāi)發(fā)中經(jīng)常涉及到的一些常用操作,例如引入和跳轉(zhuǎn)其它資源、檢索其它域?qū)ο笾械膶傩缘取?/P>
通過(guò)pageContext獲得其他對(duì)象
getException方法返回exception隱式對(duì)象
getPage方法返回page隱式對(duì)象
getRequest方法返回request隱式對(duì)象
getResponse方法返回response隱式對(duì)象
getServletConfig方法返回config隱式對(duì)象
getServletContext方法返回application隱式對(duì)象
getSession方法返回session隱式對(duì)象
getOut方法返回out隱式對(duì)象
pageContext封裝其它8大內(nèi)置對(duì)象的意義,思考:如果在編程過(guò)程中,把pageContext對(duì)象傳遞給一個(gè)普通java對(duì)象,那么這個(gè)java對(duì)象將具有什么功能?
pageContext作為域?qū)ο?
pageContext對(duì)象的方法
public void setAttribute(java.lang.String name,java.lang.Object value)
public java.lang.Object getAttribute(java.lang.String name)
public void removeAttribute(java.lang.String name)
pageContext對(duì)象中還封裝了訪問(wèn)其它域的方法
public java.lang.Object getAttribute(java.lang.String name,int scope)
public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
public void removeAttribute(java.lang.String name,int scope)
代表各個(gè)域的常量
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE
- JSP response對(duì)象實(shí)現(xiàn)文件下載的兩種方式
- JSP隱含對(duì)象response實(shí)現(xiàn)文件下載的兩種方法
- 多個(gè)jsp頁(yè)面共享一個(gè)js對(duì)象的超級(jí)方法
- Jsp中response對(duì)象的所有屬性詳細(xì)介紹
- JSP 相關(guān)對(duì)象的使用介紹
- JSP內(nèi)置對(duì)象:Request和Response的簡(jiǎn)單介紹及使用
- jsp內(nèi)置對(duì)象及方法詳細(xì)介紹
- JSP的內(nèi)部對(duì)象
- JSP開(kāi)發(fā)入門(四)--JSP的內(nèi)部對(duì)象
- JSP中隱式對(duì)象用法實(shí)例
相關(guān)文章
JBuilder2005單元測(cè)試之業(yè)務(wù)類介紹
JBuilder2005單元測(cè)試之業(yè)務(wù)類介紹...2006-10-10
JSP 自定義標(biāo)簽之一 簡(jiǎn)單實(shí)例
當(dāng)前軟件開(kāi)發(fā)越來(lái)越重視分工與協(xié)作,對(duì)于JSP技術(shù)而言,視圖層與模型層分別由不同的團(tuán)隊(duì)完成也成為理所當(dāng)然的選擇,基于技術(shù)專長(zhǎng)不同及其它因素考慮,眾多規(guī)范中都明確要求JSP頁(yè)面代碼中不允許出現(xiàn)Java代碼。2009-07-07
jsp+Servlet編程實(shí)現(xiàn)驗(yàn)證碼的方法
這篇文章主要介紹了jsp+Servlet編程實(shí)現(xiàn)驗(yàn)證碼的方法,結(jié)合實(shí)例分析了jsp+servlet實(shí)現(xiàn)驗(yàn)證碼所需的相關(guān)類與具體功能實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11

