session能夠同時存在多個
好比這樣一個狀況:同一客戶端機器屢次請求同一個資源,對於多標籤的瀏覽器來講,在一個瀏覽器窗口中,多個標籤同時訪問一個頁面,session是一個。對於多個瀏覽器窗口之間,同時或者相隔很短期訪問一個頁面,session是多個的,和瀏覽器的進程有關。對於一個同一個瀏覽器窗口,直接錄入url訪問同一應用的不一樣資源,session是同樣的。html
request.getSession(true):若存在會話則返回該會話,不然新建一個會話。
request.getSession(false):若存在會話則返回該會話,不然返回NULL
request.getSession()默認是true:若是session不存在那麼將建立一個web
Session&Cookie與用戶登陸檢驗瀏覽器
當程序須要爲某個客戶端的請求建立一個session時,服務器首先檢查這個客戶端的請求裏是否已包含了一個session標識(稱爲session id),若是已包含則說明之前已經爲此客戶端建立過session,服務器就按照session id把這個session檢索出來使用(檢索不到,會新建一個),若是客戶端請求不包含session id,則爲此客戶端建立一個session而且生成一個與此session相關聯的session id,session id的值應該是一個既不會重複,又不容易被找到規律以仿造的字符串,這個session id將被在本次響應中返回給客戶端保存。 保存這個session id的方式能夠採用cookie,這樣在交互過程當中瀏覽器能夠自動的按照規則把這個標識發揮給服務器。通常這個cookie的名字都是相似於 SEEESIONID。tomcat
cookie能夠被人爲的禁止,則必須有其餘機制以便在cookie被禁止時仍然可以把session id傳遞迴服務器。 常常被使用的一種技術叫作URL重寫,就是把session id直接附加在URL路徑的後面。還有一種技術叫作表單隱藏字段。就是服務器會自動修改表單,添加一個隱藏字段,以便在表單提交時可以把session id傳遞迴服務器。服務器
例:cookie
<form name=」"testform」" action=」"/xxx」"> <input type=」"hidden」" name=」"jsessionid」" value=」"ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764″」> <input type=」"text」"> </form>
URL重寫session
http://www.test.com/test;jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
catalina 就是Tomcat服務器使用的 Apache實現的servlet容器的 名字。jsp
Tomcat的核心分爲3個部分:url
- Web容器---處理靜態頁面;
- catalina --- 一個servlet容器-----處理servlet;
- 還有就是JSP容器,它就是把jsp頁面翻譯成通常的servlet。
http://yut-i.blog.163.com/blog/static/2425778220121159347221/ 翻譯
-------------------------------------------------
項目session失效問題以及解決方法
tomcat配置文件web.xml中配置的session失效時間不起做用,session在外網頻繁失效
可能緣由:項目部署在同一服務器下,ip或域名相同
調試中查看攔截器方法
session與域名、IP
項目部署在同一服務器,
http://netsecurity.51cto.com/art/201402/428721.htm
二級域名
baidu.com 一級域名
www.baidu.com 二級域名
bbs.baidu .com 二級域名
tieba.baidu .com 二級域名
不一樣二級域名之間共享session?