用途数据库
Session其实就是会话变量的保存地,只要是能使用变量的地方,都能使用 Sesion 变量。好比能够用来 计数、存储临时信息、甚至还能够存储DataTable,只要你的服务器的内存足够大就行。 简单通俗的讲session就是象一个临时的容器 来存放这些临时的东西 从你登录开始就保存在session里 固然你能够本身设置它的有效时间和页面 举个简单的例子 咱们作一个购书的JSP网站 顾客买书的时候会挑选出一些书 可是在付钱以前还能够修改,因此不能存到数据库 就能够先保存在session里 等到确认了之后再放入数据库...
定义浏览器
在WEB开发中,服务器能够为每一个用户浏览器建立一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认状况下)。所以,在须要保存用户数据时,服务器程序能够把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序能够从用户的session中取出该用户的数据,为用户服务。 须要注意:新开的浏览器窗口会生成新的Session,但子窗口除外。子窗口会共用父窗口的Session。例如,在连接上右击,在弹出的快捷菜单中选择"在新窗口中打开"时,子窗口即可以访问父窗口的Session。 须要注意:只有访问JSP、Servlet等程序时才会建立Session,只访问HTML、IMAGE等静态资源并不会建立Session
具体来讲cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。二者存储的都是用户登陆信息,操做行为等等的数据。
服务器会为每个访问服务器的用户建立一个session对象,而且把session对象的id保存在本地cookie上,只要用户再次访问服务器时,带着session的id,服务器就会匹配用户在服务器上的session,根据session中的数据,还原用户上次的浏览状态或提供其余人性化服务。服务器
若是客户端浏览器将Cookie功能禁用,或者不支持Cookie怎么办?例如,绝大多数的手机浏览器都不支持Cookie。Java Web提供了另外一种解决方案:URL地址重写。cookie
URL地址重写session
URL重写就是首先得到一个进入的URL请求而后把它从新写成网站能够处理的另外一个URL的过程。举个例子来讲,若是经过浏览器进来的URL是“UserProfile.aspx?ID=1”那么它能够被重写成 “UserProfile/1.aspx”,这样的URL,这样的网址能够更好的被网站所阅读。网站
如何经过URL地址重写实现session的id传输url
URL地址重写的原理是将该用户Session的id信息重写到URL地址中。服务器可以解析重写后的URL获取Session的id。这样即便客户端不支持Cookie,也可使用Session来记录用户状态。code
HttpServletResponse类提供了encodeURL(String url)实现URL地址重写,该方法会自动判断客户端是否支持Cookie。若是客户端支持Cookie,会将URL原封不动地输出来。若是客户端不支持Cookie,则会将用户Session的id重写到URL中。对象
服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。具体根据服务器设置,通常在二三十分钟左右。内存
cookie的内容主要包括:名字,值,过时时间,路径和域。路径与域一块儿构成cookie的做用范围。
经过过时时间能够设置cookie的有效时长