JSP運(yùn)行原理和九大隱式對象說明
每個JSP 頁面在第一次被訪問時,WEB容器都會把請求交給JSP引擎(即一個Java程序)去處理。JSP引擎先將JSP翻譯成一個_jspServlet(實(shí)質(zhì)上也是一個servlet) ,然后按照servlet的調(diào)用方式進(jìn)行調(diào)用。
由于JSP第一次訪問時會翻譯成servlet,所以第一次訪問通常會比較慢,但第二次訪問,JSP引擎如果發(fā)現(xiàn)JSP沒有變化,就不再翻譯,而是直接調(diào)用,所以程序的執(zhí)行效率不會受到影響。
JSP引擎在調(diào)用JSP對應(yīng)的_jspServlet時,會傳遞或創(chuàng)建9個與web開發(fā)相關(guān)的對象供_jspServlet使用。JSP技術(shù)的設(shè)計(jì)者為便于開發(fā)人員在編寫JSP頁面時獲得這些web對象的引用,特意定義了9個相應(yīng)的變量,開發(fā)人員在JSP頁面中通過這些變量就可以快速獲得這9大對象的引用。
這9個對象分別是哪些,以及作用也是筆試經(jīng)常考察的知識點(diǎn)。
Jsp九大隱式對象
request //代表request對象
response //代表response對象
config //代表servletConfig對象
application //代表servletContext對象
exception
Session
page
out //代表response.getWriter() ,字符輸出流對象
pageContext
pageContext對象
pageContext對象是JSP技術(shù)中最重要的一個對象,它代表JSP頁面的運(yùn)行環(huán)境.
這個對象不僅封裝了對其它8大隱式對象的引用,
它自身還是一個域?qū)ο螅梢杂脕肀4鏀?shù)據(jù)。
并且,這個對象還封裝了web開發(fā)中經(jīng)常涉及到的一些常用操作,例如引入和跳轉(zhuǎn)其它資源、檢索其它域?qū)ο笾械膶傩缘取?/P>
通過pageContext獲得其他對象
getException方法返回exception隱式對象
getPage方法返回page隱式對象
getRequest方法返回request隱式對象
getResponse方法返回response隱式對象
getServletConfig方法返回config隱式對象
getServletContext方法返回application隱式對象
getSession方法返回session隱式對象
getOut方法返回out隱式對象
pageContext封裝其它8大內(nèi)置對象的意義,思考:如果在編程過程中,把pageContext對象傳遞給一個普通java對象,那么這個java對象將具有什么功能?
pageContext作為域?qū)ο?
pageContext對象的方法
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對象中還封裝了訪問其它域的方法
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)
代表各個域的常量
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE
相關(guān)文章
jsp中獲取狀態(tài)怎么寫(兩種實(shí)現(xiàn)方式)
由于框架是2005年的,jsp中不能存放標(biāo)簽,只能有java代碼來寫了,接下來為大家介紹下兩種實(shí)現(xiàn)獲取狀態(tài)寫法,感興趣的各位可以參考下哈,希望可以幫助到你2013-04-04JSP 重置按鈕清空傳入的表單數(shù)據(jù)實(shí)例
本例講解的是表單清空,jquery實(shí)現(xiàn)清空表單中填寫及傳入的值,很實(shí)用,喜歡的朋友可以學(xué)習(xí)下2014-09-09Spring mvc實(shí)現(xiàn)Restful返回xml格式數(shù)據(jù)實(shí)例詳解
這篇文章主要介紹了spring mvc實(shí)現(xiàn)Restful返回xml格式數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2017-03-03詳解Struts2中對未登錄jsp頁面實(shí)現(xiàn)攔截功能
這篇文章主要介紹了Struts2中對未登錄jsp頁面進(jìn)行攔截功能的實(shí)現(xiàn),在演示源碼的同時對步驟和原理進(jìn)行了分析,具有一定參考價值,需要得朋友可以了解下。2017-09-09