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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java中如何使用session

發(fā)布時(shí)間:2024/9/5 java 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中如何使用session 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

幾乎所有的Web開發(fā)語言都支持Session功能,Servlet也不例外。 Servlet/JSP中的Session功能是通過作用域(scope)這個(gè)概念來實(shí)現(xiàn)的。


作用域分為四種,分別為:


page 在當(dāng)前頁面有效(僅用于JSP中)
request 在當(dāng)前請求中有效
session 在當(dāng)前會話中有效
application 在所有應(yīng)用程序中有效


是不是看不太明白?page因?yàn)閮H用于JSP中,這里只講述其他三種作用域。首先要聲明的一點(diǎn),所謂“作用域”就是“信息共享的范圍”,也就是說一個(gè)信息能夠在多大的范圍內(nèi)有效。


話說武松一日來到景陽崗,見一旗幟迎風(fēng)飄揚(yáng),旗子上書五個(gè)大字“三碗不過崗”。武松叫道:“店家,拿三碗酒來,再切兩斤熟牛肉!”店小二應(yīng)聲道:“三碗好酒,二斤熟牛肉啰~~”里面廚師趕忙當(dāng)當(dāng)當(dāng)當(dāng)切好牛肉,店小二倒上三碗酒,店小二端上前來。


武松咕咚咕咚連干三碗,叫一聲“好酒!店家,再來三碗!”小二忙又倒上三碗好酒,武松一飲而盡。就這樣前前后后武松一共喝了十八大腕。付了帳剛要走,店小二道: “客官,這前面山上有大蟲,客官剛剛喝完十八碗酒恐怕過不得崗,不如在小店暫住一夜,待明天和獵戶一同過崗豈不是好?”


之后武松說什么就留待各位看官自己去回憶啦。在這段武松打虎中,大家有沒有看到些熟悉的東西?


武松: 瀏覽器。
酒館: 服務(wù)器。
店小二、廚師: Servlet或者JSP。
來三碗好酒!: 瀏覽器向服務(wù)器發(fā)出HTTP請求。
店小二上酒: 服務(wù)器的響應(yīng)。
武松從進(jìn)店到離開: 一個(gè)HTTP對話。
我們可以看到,Web交互的最基本單位為HTTP請求(武松點(diǎn)菜)。每個(gè)用戶從進(jìn)入網(wǎng)站到離開網(wǎng)站這段過程稱為一個(gè)HTTP會話 (武松進(jìn)店到出店),一個(gè)服務(wù)器的運(yùn)行過程中會有多個(gè)用戶訪問,就是多個(gè)HTTP會話(酒館當(dāng)然不可能只接待武松一個(gè)客人)。那么作用域就可以理解為:


request HTTP請求開始到結(jié)束這段時(shí)間
session HTTP會話開始到結(jié)束這段時(shí)間
application 服務(wù)器啟動到停止這段時(shí)間


request


一個(gè)HTTP請求的處理可能需要多個(gè)Servlet合作(武松點(diǎn)菜時(shí)店小二就要吩咐廚房做菜),幾個(gè)Servlet之間可以通過某種方式傳遞信息(店小二就用吆喝的方式通知廚房),但這個(gè)信息在請求結(jié)束后就無效了(廚房在做完菜之后就不用再管這道菜的事兒了)。


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


void setAttribute(String name, Object value)
將對象 value 以 name 為名稱保存到request作用域中。
Object getAttribute(String name)
從request作用域中取得指定名字的信息。
doGet()、doPost()函數(shù)的第一個(gè)參數(shù)就是 HttpServletRequest 對象,使用這個(gè)對象的 setAttribute 即可傳遞信息。


那么設(shè)置好信息之后,如何將信息傳給其他Servlet?這就要用到 RequestDispatcher 接口的 forward 方法,將請求轉(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中先 setAttribute,然后forward,最后在forward到的Servlet中 getAttribute即可實(shí)現(xiàn)信息傳遞。


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


轉(zhuǎn)發(fā)不是重定向,轉(zhuǎn)發(fā)是在Web應(yīng)用內(nèi)部進(jìn)行的。PHP支持重定向但沒有轉(zhuǎn)發(fā)。
轉(zhuǎn)發(fā)對瀏覽器是透明的,也就是說,無論在服務(wù)器上如何轉(zhuǎn)發(fā),瀏覽器地址欄中顯示的仍然是最初那個(gè)Servlet的地址。
session


session作用域比較容易理解,同一瀏覽器訪問多次,在這多次訪問之間傳遞信息,就是session作用域。 ('''武松每次點(diǎn)菜帳房先生都要記一筆賬,等武松走之前結(jié)帳用。這筆帳在武松吃飯過程中始終有效,即位于session作用域中''')


session是通過HttpSession接口實(shí)現(xiàn)的。


Object HttpSession.getAttribute(String name)
從session中獲取信息
void HttpSession.setAttribute(String name, Object value)
向session中保存信息
而通過HttpServletRequest.getSession()方法可以獲得HttpSession對象。


HttpSession HttpServletRequest.getSessio()
獲取當(dāng)前請求所在的session的對象。
session的開始容易判斷(瀏覽器發(fā)出第一個(gè)HTTP請求即可認(rèn)為會話開始),但結(jié)束就不好判斷了(因?yàn)闉g覽器關(guān)閉時(shí)不會通知服務(wù)器“我關(guān)了,會話可以結(jié)束了”),所以只能通過這種方法判斷:如果一定的時(shí)間內(nèi)客戶端沒有反應(yīng),則認(rèn)為會話結(jié)束。 Tomcat的默認(rèn)值為120分鐘,但這個(gè)值也可以通過 HttpSession 的 setMaxInactiveInterval 方法來設(shè)置。


void setMaxInactiveInterval(int interval)
設(shè)置繪畫的超時(shí)值。
如果想主動讓會話結(jié)束,如用戶單擊“注銷”的時(shí)候,可以使用 HttpSession 的 invalidate 方法:


vooid invalidate()
強(qiáng)制結(jié)束當(dāng)前session。
application


application作用域就是服務(wù)器啟動到關(guān)閉的整段時(shí)間,在這個(gè)作用域內(nèi)設(shè)置的信息可以被所有應(yīng)用程序使用。 (餐館打烊后結(jié)帳,用到的即是開張到打烊之間的所有信息。)


還記得上一節(jié)提到的ServetContext嗎? application作用域上的信息傳遞就是通過ServetContext實(shí)現(xiàn)的。


Object getAttribute(String name)
從application中獲取信息。
void setAttribute(String name, Object value)
向application作用域中設(shè)置信息。
總結(jié)


可以看到,每個(gè)作用域除了實(shí)現(xiàn)接口不同、意義不同之外,它們的使用方法和作用都是相同的,都是通過 getAttribute 和 setAttribute 方法進(jìn)行信息傳遞。


作用域 意義 實(shí)現(xiàn)接口
request HTTP請求內(nèi) HttpServletRequest
session HTTP會話內(nèi) HttpSession

application 服務(wù)器生命周期內(nèi) ServletContext

轉(zhuǎn)載于:https://www.cnblogs.com/developing/p/11191984.html

總結(jié)

以上是生活随笔為你收集整理的Java中如何使用session的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日韩一级片免费观看 | 超碰在线9 | 国产9区| 天天操天天干天天爱 | 99精品一区二区三区无码吞精 | 欧美日韩亚洲综合 | 亚洲自拍中文 | 轻点好疼好大好爽视频 | 伊人69| 欧美一二在线 | 一炮成瘾1v1高h | 国产1区2区3区 | 人体内射精一区二区三区 | 男男gay羞辱feet贱奴vk | 欧洲一级黄| 无套暴操| 午夜精品在线播放 | 中文字幕不卡 | 国产chinese | 亚洲色图13p | 国产高清自拍av | 久草资源网站 | 性高湖久久久久久久久免费 | 久久久人人爽 | 黄色一级视频免费观看 | 欧美日韩麻豆 | 色在线综合 | 欧美三级一区二区 | www.日韩高清| 岛国av免费观看 | 台湾一级视频 | 夜夜嗨av禁果av粉嫩av懂色av | 香蕉视频传媒 | 男人天堂b | 国产免费一区二区三区最新不卡 | 日韩av一区二区在线 | 久久久久久久蜜桃 | av一区二| 无码一区二区三区在线 | 亚洲色图13p | 国产精品毛片一区 | 久久依人 | 国产精品国产馆在线真实露脸 | av视屏| 乳色吐息在线观看 | 91精品国产91久久久久青草 | 午夜福利理论片在线观看 | 国产成人综合欧美精品久久 | 五月天中文字幕在线 | 欧美性在线观看 | 视频一区二区视频 | 特黄三级又爽又粗又大 | 国产精品大全 | 一区三区在线观看 | 欧美日韩一级二级 | 亚洲综合激情小说 | 欧美精品www | 97在线国产 | 亚洲区视频在线观看 | 大陆一级片 | 欧美整片第一页 | 久久精品国产免费 | 高跟鞋肉丝交足91 | 日韩一级不卡 | 国产成人91| 中文字幕永久在线播放 | 欧美色人阁 | 亚洲精品一区久久久久久 | jizz中国少妇| 欧美夜夜骑 | 亚洲专区中文字幕 | 蜜桃久久久aaaa成人网一区 | 色偷偷888欧美精品久久久 | 欧美激情图片 | 进去里在线观看 | 国产美女免费 | 国产精品免费一区二区三区都可以 | 精品视频久久久久久 | 一区二区三区 日韩 | 日韩中文av在线 | 男女做那个的全过程 | 色老汉av一区二区三区 | 伊人春色在线视频 | 柠檬av导航| 亚洲毛片网 | 麻豆视频免费看 | 免费三级av | 精品毛片在线观看 | 国产xxx在线观看 | 成人深夜视频 | 日噜噜夜噜噜 | 外国av在线 | 色999视频 | 国产粉嫩在线观看 | 91亚瑟 | 国产高清精品软件丝瓜软件 | 欧美少妇一级片 | 韩国三级黄色 | 久久精品国产亚洲av麻豆色欲 |