session

在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都可以访问,前提是窗口和窗口之间有父子关系。也就是说,你可以在原窗口基础上打开新的窗口,但是你如果从浏览器图标处打开一个新的就不行。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值