session
2012-05-02 04:08
99 查看
在cookie中已经说过了,算不上可靠稳定,也不保险,因为用户可能会禁止掉cookie,那么服务器就没法向浏览器发送cookie,就可能导致核心内容无法按照正常设计的目的运行。
这个时候就需要另外一种机制,这个叫做session。
如果不想在客户端写的话,那么就要在服务器端写了。怎么个做法呢?当客户端访问服务器并需要这种记录的时候,服务器先看看这个客户端有没有session,没有的话在服务器端创建一个,并且为其添加一个session id,将需要记录的内容写在服务器端,并且将这个session id以cookie的形式写到客户端去,这样二者就构成了配对。那么一个新的客户端访问服务器并且需要记录的时候,服务器就会创建一个新的session,这样就不会混淆。
这样如果客户端禁止掉还是就不能写了,而且每一次都会在服务器端创建一个新的session,只是没有办法传给客户端。但是session仍然有好处:首先,客户端不会写那么多内容,第二,由于cookie只能写文本并且大小最大为4K,这样有一些限制,但是你在服务器端,你想写多少就写多少,更加灵活。
那么怎么创建呢?可以使用 HttpSession session = request.getSession(true);
意思就是,从客户端的请求查看session,true的含义是如果客户端第一次访问的话,就为其创建一个session。
session还有一个好处就是,跟路径无关,只要是在一个同一个Web app下面,所有的servlet都可以访问,前提是窗口和窗口之间有父子关系。也就是说,你可以在原窗口基础上打开新的窗口,但是你如果从浏览器图标处打开一个新的就不行。
这个时候就需要另外一种机制,这个叫做session。
如果不想在客户端写的话,那么就要在服务器端写了。怎么个做法呢?当客户端访问服务器并需要这种记录的时候,服务器先看看这个客户端有没有session,没有的话在服务器端创建一个,并且为其添加一个session id,将需要记录的内容写在服务器端,并且将这个session id以cookie的形式写到客户端去,这样二者就构成了配对。那么一个新的客户端访问服务器并且需要记录的时候,服务器就会创建一个新的session,这样就不会混淆。
这样如果客户端禁止掉还是就不能写了,而且每一次都会在服务器端创建一个新的session,只是没有办法传给客户端。但是session仍然有好处:首先,客户端不会写那么多内容,第二,由于cookie只能写文本并且大小最大为4K,这样有一些限制,但是你在服务器端,你想写多少就写多少,更加灵活。
那么怎么创建呢?可以使用 HttpSession session = request.getSession(true);
意思就是,从客户端的请求查看session,true的含义是如果客户端第一次访问的话,就为其创建一个session。
session还有一个好处就是,跟路径无关,只要是在一个同一个Web app下面,所有的servlet都可以访问,前提是窗口和窗口之间有父子关系。也就是说,你可以在原窗口基础上打开新的窗口,但是你如果从浏览器图标处打开一个新的就不行。
相关文章推荐
- session与cookie的区别
- session与cookie的生命周期
- Struts2中Session的使用
- Nginx-1.6.2+Memcached-1.2.6+Tomcat7负载均衡实现Session共享
- 将session存放至ocs进行存取
- 了解负载均衡 会话保持 session同步
- Apache+Tomcat集群部署,session共享实现
- session(下)
- Java集群之session共享解决方案
- request,response,session,out,pagecontext
- HTTP协议中session与cookie的联系与区别
- servlet(5) - Cookie和session - 小易Java笔记
- 几种获取request,session方法
- Fatal error: Call to undefined function session_is_registered() 函数已废弃
- DWR 控制请求session过期处理
- Session与Tomcat线程池
- Application, Session, Cookie, Viewstate, Cache对象用法和区别
- session 原理
- 06-session实现简易购物车1
- Restrict each user to a single session in window server 2008 R2 or 2012