这次学习session
目录
JSP内置对象session
我们知道用户每次发一个请求,服务器就要有一次或几次响应,但是服务器是否知道多次发送请求的是同一个用户呢
session就是解决这样的问题,我们简单的理解为一个session就是一个用户,不同用户都有不同的session,在session中我们可以存放用户的变量,这些变量在整个session访问的范围内都是有效的。
不能理解没关系,看看例子再怎么都明白了
下面介绍session的用法:
session对象的id
每个session对象都有一个id
可以使用session.getId()
获取id字符串,可以查看session对象是不是同一个
session对象与URL重写
session能和用户建立起一一对应的关系,依靠用户的浏览器是否支持Cookie。如果用户的浏览器不支持,则不同网页之间的session对象就不同了,但JSP页面能够通过URL重写来实现session对象的唯一性
String str = response.encodeRedirectURl(“example.jsp”)
然后将目标链接换成<%=str%>即可:
session变量在同一个session期内都是有效的,也就是同一个用户内
注意事项:session.getAttribute(String name)获取的是object对象,需要转换
session对象的生存期限
服务器怎么判断什么时候session对象是同一个呢,什么时候又会从新分配session对象。
可以在web.xml中加入
<session-config>
<session-timeout>30</session-timeout>
</session-config>
表示如果两次请求间隔超过了30分钟,则会重写分配session
其他获取session生存时间的方法不提
例子
全是jsp页面,servlet大同小异,下面讲
随机生成一个数,用户更具提示猜测
Svervlet session
和jsp的大同小异,
只是在使用session.getAttribute(“name”)等方法时,需要先获取到session对象,使用:
HttpSession session = request.getSession(ture)
例子
一样的原理就直接采用书上的了