Session会话应用

什么是Session会话?

1.Session就是一个接口(HttpSession)。

2.Session就是会话,它是用来维护一个客户端和服务器之间关联的一种技术。

3.每个客户端都有自己的一个Session会话。

4.Session会话中,我们经常用来保存用户登录之后的信息。

如何创建Session和获取(id号,是否为新)

如何创建和获取Session,他们的API是一样的。

request.getSession()

         第一次调用时,创建Session会话。

        之后调用都是,获取前面创建好的Session会话对象。

isNew():判断到底是不是刚创建出来的(新的)

        true  表示刚创建

        false 表示获取之前的创建

每个会话都有一个身份证号,也就是ID值,而且这个ID是唯一的。

getId()得到Session的会话Id值。

protected void createOrGetSession(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//创建和获取Session会话对象
		HttpSession session=request.getSession();
		//判断 当前Session会话,是否是最新创建出来的
		boolean isnew=session.isNew();
		//获取session会话的唯一标识id
		String id=session.getId();
		
		response.getWriter().write("得到的Session,它的id:"+id+"<br/>");
		response.getWriter().write("这个Session是否是新创建的:"+isnew+"<br/>");
		
	}

Session域数据的存取

protected void setAttribute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.getSession().setAttribute("key1", "value1");
	}
	protected void getAttribute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Object attribute=request.getSession().getAttribute("key1");
		response.getWriter().write("从Session中获取出key1的数据是:"+attribute);
	}

Session生命周期控制

public void setMaxInactiveInterval(int interval) 设置Session的超时时间(以秒为单位),超过指定的时长,Session就会被销毁。

                值为正数的时候,设定Session的超时时长。

                负数表示永远不超时(极少使用)

立即销毁  invalidate()  让Session会话马上超时(session.invalidate())

public void getMaxInactiveInterval() 获取Session的超时时间
     

Session默认的超时时长为 1800秒(30分钟)

可以在web工程的web.xml文件中修改默认时间

如下:

<session-config>

        <session-timeout>xx</session-timeout>

</session-config>

        另外,如果想修改个别的Session的超时时长,就可以使用上面的API.setMaxInactiveInterval(int interval)进行修改

浏览器和Session之间关联的技术内幕

 关闭浏览器Session没有了是因为关闭浏览器cookie没有了。getSession()找不到Session对象。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值