真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

jsp的作用域有什么

這篇文章將為大家詳細(xì)講解有關(guān)jsp的作用域有什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

目前成都創(chuàng)新互聯(lián)公司已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、阜南網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

jsp的作用域有什么

application:在所有應(yīng)用程序中有效,即只要這個(gè)網(wǎng)站運(yùn)行著,這個(gè)作用域就有效,這個(gè)指的程序的運(yùn)行過(guò)程。

session:在當(dāng)前會(huì)話中有效,即從瀏覽器訪問(wèn)

Web交互的最基本單位為HTTP請(qǐng)求。每個(gè)用戶從進(jìn)入網(wǎng)站到離開(kāi)網(wǎng)站這段過(guò)程稱為一個(gè)HTTP會(huì)話,一個(gè)服務(wù)器的運(yùn)行過(guò)程中會(huì)有多個(gè)用戶訪問(wèn),就是多個(gè)HTTP會(huì)話。作用域解釋如下。

application:服務(wù)器啟動(dòng)到停止這段時(shí)間。

session:HTTP會(huì)話開(kāi)始到結(jié)束這段時(shí)間。

request:HTTP請(qǐng)求開(kāi)始到結(jié)束這段時(shí)間。

page:當(dāng)前頁(yè)面從打開(kāi)到關(guān)閉這段時(shí)間。

1. application 作用域

application作用域就是服務(wù)器啟動(dòng)到關(guān)閉的整段時(shí)間,在這個(gè)作用域內(nèi)設(shè)置的信息可以被所有應(yīng)用程序使用。application作用域上的信息傳遞是通過(guò)ServletContext實(shí)現(xiàn)的,它提供的主要方法如下所示:

Object getAttribute(String name):從application中獲取信息。

void setAttribute(String name, Object value):向application作用域中設(shè)置信息。

2. session作用域

session作用域比較容易理解,同一瀏覽器對(duì)服務(wù)器進(jìn)行多次訪問(wèn),在這多次訪問(wèn)之間傳遞信息,就是session作用域的體現(xiàn)。session是通過(guò)HttpSession接口實(shí)現(xiàn)的,它提供的主要方法如下所示。

Object HttpSession.getAttribute(String name):從session中獲取信息。

void HttpSession.setAttribute(String name, Object value):向session中保存信息。

HttpSession HttpServletRequest.getSession():獲取當(dāng)前請(qǐng)求所在的session的對(duì)象。

session的開(kāi)始時(shí)刻比較容易判斷,它從瀏覽器發(fā)出第一個(gè)HTTP請(qǐng)求即可認(rèn)為會(huì)話開(kāi)始。但結(jié)束時(shí)刻就不好判斷了,因?yàn)闉g覽器關(guān)閉時(shí)并不會(huì)通知服務(wù)器,所以只能通過(guò)如下這種方法判斷:如果一定的時(shí)間內(nèi)客戶端沒(méi)有反應(yīng),則認(rèn)為會(huì)話結(jié)束。Tomcat的默認(rèn)值為120分鐘,但這個(gè)值也可以通過(guò)HttpSession的setMaxInactiveInterval(int interval)方法來(lái)設(shè)置,如果想主動(dòng)讓會(huì)話結(jié)束,例如用戶單擊"注銷"按鈕的時(shí)候,可以使用 HttpSession 的 invalidate()方法,用于強(qiáng)制結(jié)束當(dāng)前session。

3. request作用域

一個(gè)HTTP請(qǐng)求的處理可能需要多個(gè)Servlet合作,而這幾個(gè)Servlet之間可以通過(guò)某種方式傳遞信息,但這個(gè)信息在請(qǐng)求結(jié)束后就無(wú)效了。

Servlet之間的信息共享是通過(guò)HttpServletRequest接口的兩個(gè)方法來(lái)實(shí)現(xiàn)的。

void setAttribute(String name, Object value):將對(duì)象value以name為名稱保存到request作用域中。

Object getAttribute(String name):從request作用域中取得指定名字的信息。

JSP中的doGet()、doPost()方法的第一個(gè)參數(shù)就是HttpServletRequest對(duì)象,使用這個(gè)對(duì)象的 setAttribute()方法即可傳遞信息。

那么在設(shè)置好信息之后,要通過(guò)何種方式將信息傳給其他的Servlet呢?這就要用到RequestDispatcher接口的forward()方法,通過(guò)它將請(qǐng)求轉(zhuǎn)發(fā)給其他Servlet。

RequestDispatcher ServletContext.getRequestDispatcher(String path):取得Dispatcher以便轉(zhuǎn)發(fā)。path為轉(zhuǎn)發(fā)的目的Servlet。

void RequestDispatcher.forward(ServletRequest request, ServletResponse response):將request和response轉(zhuǎn)發(fā)。

因此,只需要在當(dāng)前Servlet中先通過(guò)setAttribute()方法設(shè)置相應(yīng)的屬性,然后使用forward()方法進(jìn)行跳轉(zhuǎn),最后在跳轉(zhuǎn)到的Servlet中通過(guò)使用getAttribute()方法即可實(shí)現(xiàn)信息傳遞。

PHP的程序員可能不太好理解這一段,因?yàn)镻HP中沒(méi)有轉(zhuǎn)發(fā)的概念,一個(gè)請(qǐng)求只能由一個(gè)PHP文件來(lái)處理,所以PHP中根本沒(méi)有request作用域的概念。而Servlet則不同,請(qǐng)求可以在應(yīng)用程序中任意轉(zhuǎn)發(fā),所以用request作用域在不同Servlet之間傳遞信息。

注意兩點(diǎn):

轉(zhuǎn)發(fā)不是重定向,轉(zhuǎn)發(fā)是在Web應(yīng)用內(nèi)部進(jìn)行的。PHP支持重定向但沒(méi)有轉(zhuǎn)發(fā)。

轉(zhuǎn)發(fā)對(duì)瀏覽器是透明的,也就是說(shuō),無(wú)論在服務(wù)器上如何轉(zhuǎn)發(fā),瀏覽器地址欄中顯示的仍然是最初那個(gè)Servlet的地址。重定向的瀏覽器地址是變化的。

4. page作用域

page對(duì)象的作用范圍僅限于用戶請(qǐng)求的當(dāng)前頁(yè)面,對(duì)于page對(duì)象的引用將在響應(yīng)返回給客戶端之后被釋放,或者在請(qǐng)求被轉(zhuǎn)發(fā)到其他地方后被釋放。對(duì)page對(duì)象的引用通常存儲(chǔ)在pageContext對(duì)象中。

以上介紹的作用范圍越來(lái)越小,request和page的生命周期都是短暫的,它們之間的區(qū)別:一個(gè)request可以包含多個(gè)page頁(yè)(include,forward及filter)。

關(guān)于“jsp的作用域有什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


文章題目:jsp的作用域有什么
網(wǎng)站路徑:
http://weahome.cn/article/gddiii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部