session和cookie的区别:
Cookie是客户端的个人数据保存技术,session是服务器端的个人数据保存技术,一个浏览器来访问,要找回其在服务器端的session,通常借助cookie来实现。
Session也是服务器对浏览器会话跟踪的一种方法,一旦session创建(会话建立),在服务器上就会开辟一块内存空间分配给这个浏览器,然后将这个内存空间的编号返回给浏览器,此浏览器以后每次来访问服务器(不全部关闭浏览器和不超时的情况)都会带着这个编号来找服务器,服务器就知道当前浏览器对应哪个内存。
1.在JSP的开头部分写如下语句,表示在此jsp翻译成的servlet中不会创建session对象
<%@ page session="false" %>
2.在有以上语句的jsp中进行如下的java代码,表示如果存在session,就拿现成session,如果没创建session,则也不创建session(推荐,可以节省服务器内存空间)
<%=request.getSession(false) %>
3.getId:返回与当前HttpSession对象关联的会话标识号。
4.getCreationTime:返回当前HttpSession对象的创建时间,返回值是一个自1970年1月1日的0点0分0秒开始计算的毫秒数。
5.getLastAccessedTime:返回当前HttpSession对象的上一次被访问的时间,返回值是一个自1970年1月1日的0点0分0秒开始计算的毫秒数。
6.setMaxInactivelInterval:设置当前HttpSession对象的最大空闲时间,默认是30分钟。如果设置成负数的话,则表示会话永不超时。以秒为单位。
7.getMaxInactivelInterval:返回当前HttpSession对象的空闲时间。以秒为单位。
8.isNew:判断当前HttpSession是否是新创建的。返回true有以下两种情况:
*某个客户端浏览器首次访问某个能开启会话功能的Servlet时。
*请求消息中通过某种方式返回了会话标识号,但是返回的会话标识号与当前HttpSession对象中保存的会话标识号不匹配,这种情况发生在客户端浏览器超时后再次访问某个能开启会话功能的servlet程序时。
9.invalidate:用于强制当前HttpSession对象无效,Web服务器则可立刻释放该HtteSession对象,而不用等到超时后才释放该HttpSession对象。例如注销功能。