日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java ee 值范围_JAVAEE之内置对象和属性范围

發(fā)布時間:2025/3/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java ee 值范围_JAVAEE之内置对象和属性范围 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

內(nèi)置對象和屬性范圍

四種屬性范圍

九個內(nèi)置對象

1.內(nèi)置對象

如果說想要使用一個對象,必須new 出來,但是在我們的jsp操作中,發(fā)現(xiàn)我們使用過的out,request對象沒有進行實例化,類似于這樣的對象,我們叫做jsp的內(nèi)置對象,也就是收不需要實例化的對象,總共有9個。

序號

對象

類型

1

pageContext

javax.servlet.jsp.PageContext

2

request

javax.servlet.http.HttpServletRequest

3

response

javax.servlet.http.HttpServletResponse

4

session

javax.servlet.http.HttpSession

5

application

javax.servlet.ServletContext

6

config

javax.servlet.ServletConfig

7

out

javax.servlet.jsp.jspWriter

8

page

java.lang.Object

9

exception

java.lang.Throwable

2.屬性范圍

在jsp中,有四種屬性范圍,所謂屬性范圍,就是指在一個jsp中設(shè)置了屬性,是否可以在其他頁面能夠訪問。四種屬性范圍分別指的是以下的四種:

·屬性范圍在當前頁面有效:設(shè)置了一個屬性,在設(shè)置屬性的頁面可以取得屬性,跳轉(zhuǎn)到其他頁面則無法取得設(shè)置的屬性

·屬性范圍在服務(wù)端跳轉(zhuǎn)范圍內(nèi)有效:一個頁面設(shè)置了屬性,然后經(jīng)過服務(wù)端跳轉(zhuǎn)(n次),依然可以取得設(shè)置的屬性

·屬性范圍在一次會話中有效:一個頁面設(shè)置屬性,無論是經(jīng)過服務(wù)端還是客戶端跳轉(zhuǎn),只要瀏覽器不重啟,設(shè)置的屬性都可以取得。

·屬性范圍在服務(wù)器上下文中有效:頁面設(shè)置的屬性,無論是經(jīng)過客戶端還是服務(wù)端跳轉(zhuǎn),無論是哪一個會話,只要服務(wù)器不重啟,設(shè)置的屬性都可以訪問。

NO

方法

描述

1

public void setAttribute(String name,Object val)

設(shè)置屬性

2

pulblic Object getAttribute(String name)

取得屬性

3

public void removeAttribute(String? name)

刪除屬性

2.1page屬性范圍

page屬性范圍也就是我們上面所提到的第一種屬性范圍,使用的是pageContext這個內(nèi)置對象設(shè)置和取得的,指的是在一個頁面使用pageContext設(shè)置了屬性之后,本頁面可以通過pageContext取得設(shè)置的屬性,跳轉(zhuǎn)到其他頁面之后無法取得設(shè)置的屬性。要注意的一點,所謂的page屬性范圍使用的是pageContext這個內(nèi)置對象設(shè)置和取得的。

//設(shè)置屬性

pageContext.setAttribute("company","廈門");

pageContext.setAttribute("address","廈門市");

pageContext.setAttribute("tel","0592-2565166");%>

如果現(xiàn)在我們通過服務(wù)端跳轉(zhuǎn),看能不能取得設(shè)置的屬性

這是pageAttributeDemo02.jsp

發(fā)現(xiàn)我們通過服務(wù)端跳轉(zhuǎn)后取不到之前設(shè)置的page范圍的屬性了,如果說想要通過服務(wù)端跳轉(zhuǎn)后也能取得設(shè)置的屬性,我們必須使用第二種屬性范圍。

2.2request屬性范圍

request屬性范圍,是第二種屬性范圍,也就是說設(shè)置的屬性在當前頁面可以取得,通過服務(wù)端跳轉(zhuǎn)之后也可以取得設(shè)置的屬性。

//設(shè)置屬性

request.setAttribute("company","廈門");

request.setAttribute("address","廈門市");

request.setAttribute("tel","0592-2565166");%>

這是pageAttributeDemo02.jsp

通過

//設(shè)置屬性

request.setAttribute("company","廈門");

request.setAttribute("address","廈門");

request.setAttribute("tel","0592-2565166");%>

現(xiàn)在,我們發(fā)現(xiàn),request范圍屬性經(jīng)過多次跳轉(zhuǎn)之后,依然可以取得設(shè)置的屬性,那么現(xiàn)在如果經(jīng)過客戶端跳轉(zhuǎn)呢?

//設(shè)置屬性

request.setAttribute("company","廈門");

request.setAttribute("address","廈門");

request.setAttribute("tel","0592-2565166");%>

客戶端跳轉(zhuǎn)

這是requestAttributeDemo03.jsp

通過程序運行結(jié)果發(fā)現(xiàn),通過客戶端跳轉(zhuǎn)不能夠取得設(shè)置的request范圍的屬性,那么如果現(xiàn)在我就想要通過客戶端取得設(shè)置的屬性呢?那么我們可以使用第三種范圍屬性。

3.session

session屬性范圍就是我們第三種屬性范圍,也就是之前提到過的,屬性范圍在一次會話中有效。是無論經(jīng)過客戶端還是服務(wù)端跳轉(zhuǎn),都可以取得設(shè)置的屬性,當然前提是瀏覽器不能重啟。

//設(shè)置屬性

session.setAttribute("company","廈門");

session.setAttribute("address","廈門");

session.setAttribute("tel","0592-2565166");%>

客戶端跳轉(zhuǎn)

02

03

以上的程序說明我們session范圍的屬性,在經(jīng)過客戶端或者服務(wù)端跳轉(zhuǎn)之后,設(shè)置的屬性依然可以取得。現(xiàn)在我們來重啟一下瀏覽器:通過操作發(fā)現(xiàn),重啟瀏覽器之后,取不到設(shè)置的session范圍屬性了,那么如果現(xiàn)在想要在瀏覽器重啟后取得設(shè)置的屬性,我們必須使用第四種屬性范圍。

4.application屬性范圍

application范圍屬性就是第四種范圍屬性,屬性是設(shè)置在服務(wù)器的上下文中,只要服務(wù)器不重啟,那么設(shè)置的屬性統(tǒng)統(tǒng)都可以取得。無論是經(jīng)過客戶端你還是服務(wù)端還是瀏覽器重啟,都可取得設(shè)置的屬性。

//設(shè)置屬性

application.setAttribute("company","廈門");

application.setAttribute("address","廈門");

application.setAttribute("tel","0592-2565166");%>

客戶端跳轉(zhuǎn)

03

設(shè)置的application范圍的屬性,無論是通過客戶端還是服務(wù)端或者瀏覽器重啟,都可以取得設(shè)置的屬性。那么現(xiàn)在如果服務(wù)器重啟呢?通過操作發(fā)現(xiàn),重啟服務(wù)器后,之前設(shè)置的屬性取不到了,那么如果想要在重啟服務(wù)器后取得設(shè)置的屬性呢?那是沒有辦法的。

3.屬性范圍使用說明

在開發(fā)中,我們常用的屬性范圍就是request和session范圍,那么在開發(fā)中,怎么區(qū)分使用二者呢?一般來說,只對于同一個功能的屬性的傳遞,使用request范圍屬性。那么對于session范圍來說,主要還是用于登陸上面。

4.關(guān)于pageContext屬性的進一步說明

上面我們講解的是四種屬性范圍,實際上四種屬性范圍都是通過pageContext設(shè)置的,在pageContext中,setAttribute()方式實際上被重載過:

·設(shè)置屬性:

·public abstract void setAttribute(java.lang.String name,? java.lang.Object value)

·public abstract void setAttribute(java.lang.String name,

java.lang.Object value,

int scope)

對于這兩個方法,第一個方法是我們之前一直在使用的,對于第二個方法,相比第一個方法多了一個參數(shù)(int scope),實際上這個參數(shù)就是指定屬性范圍的參數(shù):

·APPLICATION_SCOPE

·PAGE_SCOPE

·SESSION_SCOPE

·REQUEST_SCOPE

也就是說,通過這個方法,我們可以設(shè)置四種屬性范圍。

跳轉(zhuǎn)

02

總結(jié),知道九個內(nèi)置對象(pageContext,session,request,response,applicatino,config,page,exception),充分掌握四種屬性范圍(page僅對于自己的頁面?zhèn)髦?#xff1b;request應(yīng)用于服務(wù)端傳值,但是客戶端跳轉(zhuǎn)不能傳值;session一般應(yīng)該于用戶的登錄注冊保存在一次會話中,會話結(jié)束,屬性值消失;application屬性范圍應(yīng)用于整個服務(wù)器中,服務(wù)器關(guān)閉屬性值消失。

總結(jié)

以上是生活随笔為你收集整理的java ee 值范围_JAVAEE之内置对象和属性范围的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。