jsp session 中属性的设置与数据填充

jsp session 中属性的设置与数据填充,第1张

首先session中的属性一般都是通过setAttribute来设置,至于你没找到session.getAttribute方法可能因为该属性在另外一个处理业务逻辑的servlet中或者是某一个监听器或者是过滤器中设置,因为session的生命周期为一次会话,比如登录后一般会将用户信息对象保存到session中,这样就可以在其他处理业务逻辑的servlet中获得当前登录的用户信息了。

02查询某网站的cookie信息很简单,只需要在地址栏里面输入javascript:alert(document.cookie)02cookie具有不可跨域性,浏览器判断的依据是域名。

02cookie常用属性中有一个叫做secure,这个属性主要用来设置该cookie是否仅仅被使用在安全协议传输,安全协议有HTTPS,SSL等,在网络上传输前要加密,默认值为false,但cookie内容不会被加密,所以为了保险起见,可以先进行手动加密,然后再通过安全协议传输,如果将secure设为true,那么就只能在安全协议中传输。

02第二个很重要的属性maxAge,主要用来设置cookie的有效期。

当它为正数时,浏览器会将该cookie持久化到文件当中。

当它为负数时,是临时cookie,浏览器会将该cookie存入浏览器内存当中。

当它为0时,表示删除,cookie没有专门的删除方法,只有通过setMaxAge(0)来删除cookie,这时会将cookie从浏览器内存中删除。

02第三个属性:path,它是用来设置cookie的访问路径的,例如:cookie.setPath("/session/")注意必须要以"/"结尾,设置为“/"时,允许所以路径来使用该cookie,页面只能获取到它属于的Path的cookie,例如/session/test/a.jsp不能获取到路径/session/abc/下面的cookie.

02response所提供 *** 作cookie的方法只有一个add(Cookie cookie),如果要修改某个cookie的值,只要使用同名的cookie将其覆盖。如果要删除某个cookie,只需要新建一个同名的cookie,然后将有效期设为0,将原来的cookie覆盖掉就达到了删除的目地。注意:新建的cookie,domain,path,name等都要一样,否则浏览器将认为是两个不同的cookie。

JSESSIONID是Tomcat生成的。

02Session也是一种会话跟踪机制,不同的是,session存储在服务端,而cookie存储在客户端,为了提高访问速度,服务器一般会将session放在内存中,所以如果有更多的用户去访问,而没有得到及时清理,就会导致内存溢出,解决方案

1,可以通过setMaxInactiveInterval(long interval)来设置它的过期时间。注意:单位是(s)

2,在web.xml中进行设置。

02<!-- timeout单位是分钟 --

<session-config

<session-timeout60</session-timeout

</session-config0202

3,也可以通过Session的invalidate()来使session失效。

02虽然说session保存在服务端,对客户端来说是透明的,但是还是需要cookie的支持,因为HTTP协议是无状态的,session无法通过http来判断是否为同一客户,因此服务端要向客户发送一个JSESSIONID来标识这个session,也就是我们所说的sessionid,可以通过HttpSession.getId()来获得。另外,cookie有效期的默认值为-1,所以session关闭浏览器就会失效。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11771188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存