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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 清空session,webwork 之销毁session

發布時間:2023/12/14 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 清空session,webwork 之销毁session 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

銷毀的意思?不是清空。而是使之失效;

一個奇怪的問題:退出系統的時候,按說ServerletListener監聽到session的銷毀,應該關閉掉session,并且在此之前會銷毀session里面的東西,可是我發現退出系統的時候,這些銷毀動作并沒有產生。

查查資料,才明白,原來在userLogoutaction里面只清空了webwork的session;并沒有銷毀session;

分別通過一下語句:

ActionContext.getContext().getSession().map.clear();//session清空

ServletActionContext.getRequest().getSession().invalidate();//session失效

資料如下:

由于WebWork對request,parameter,Session和Application都進行了封裝,將這些隱含的對象封裝成了相應的Map,如RequestMap,ParameterMap,SessionMap和ApplicationMap,而這些Map就組成了ActionContext,因此我們通常都不再需要與request,session這些底層的對象打交道了;

事實上,對于SessionMap的處理即是對Session的處理了。我們可以通過ActionContext的靜態方法getContext返回一個ActionContext的實例,然后再調用其getSession方法獲得SessionMap,接著就可以利用put和get方法對session進行讀寫的操作了。

而在頁面上,我們可以通過以下的方式對session進行操作:

#session.name表示從SessionMap中取得與"name"這個key對應的對象,實際上是調用了如下的statement:ActionContext.getContext().getSession().get("name"),并且進行了類型的轉換。

又如:

則是在SessionMap中獲得了Player對象之后,并調用類Player的getter方法:getName()獲得name屬性。

簡而言之,為了能夠降低與部署環境的耦合程度,WebWork將Servlet的隱含對象進行了封裝,這在很大程度上簡化了開發的工作。而且WebWork也提供了類ServletActionContext,我們通過這個類中的getRequest方法獲得原始的HttpServletRequest,然后就可以對request和session這些底層對象進行操作了。但是,一般情況下,利用ActionContext.getSession()可以完成幾乎所有的工作了,我們又為什么要去碰那些底層的東西呢?因此我們應該優先考慮使用SessionMap,而不是底層的session。

另外一個需要注意的問題,就是SessionMap和隱藏對象session的作用域是不同的。也就是說,通過 ActionContext.getContext().getSession().put("name","Fantasy Soft"),往SessionMap中寫入了與"name"這個key相對應的內容,但是在頁面上通過session.getAttribute("name")得到的將會是null。

總結

以上是生活随笔為你收集整理的linux 清空session,webwork 之销毁session的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。