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?