初始JavaWeb(五)——Session

JSP Session

HTTP是无状态协议,这意味着每次客户端检索网页时,都要单独打开一个服务器连接,因此服务器不会记录下先前客户端请求的任何信息。

有三种方法来维持客户端与服务器的会话:

  • Cookies
    网络服务器可以指定一个唯一的session ID作为cookie来代表每个客户端,用来识别这个客户端接下来的请求。
    这可能不是一种有效的方式,因为很多时候浏览器并不一定支持cookie,所以我们不建议使用这种方法来维持会话。
//向客户端添加cookie
String nameKey = URLEncoder.encode("姓名", "utf-8")   ;// cookie保存中文报错
String nameValue = URLEncoder.encode("张三", "utf-8")   ;// cookie保存中文报错
		
Cookie cookie = new Cookie(nameKey, nameValue);
cookie.setMaxAge(60);// 秒
response.addCookie(cookie);
  • 隐藏表单域:
    一个网络服务器可以发送一个隐藏的HTML表单域和一个唯一的session ID.
    这个条目意味着,当表单被提交时,指定的名称和值将会自动包含在GET或POST数据中。每当浏览器发送一个请求,session_id的值就可以用来保存不同浏览器的轨迹。
    这种方式可能是一种有效的方式,但点击a标签中的超链接时不会产生表单提交事件,因此隐藏表单域也不支持通用会话跟踪。
 <input type="hidden" name="session" value="session">
  • 重写URL:
    您可以在每个URL后面添加一些额外的数据来区分会话,服务器能够根据这些 数据来关联session标识符。

  • Session对象:
    Session原理:WEB容器为每个客户端会提供一个session,当调用相应的方法时,该session就会产生,并同时产生一个唯一的session ID,通过Cookie发送到客户端进行保存,并可以向session里存数据(对象),那么该客户端在由该页面跳转到 下一个页面后,就可以把前面页面中向session中共享的数据取出来。

得到session对象
request.getSession(无参/true)>得到session的唯一标识ID号:`session.getId()`

>得到session的创建时间:`session.getCreationTime() `

>上次访问时间:`session.getLastAccessedTime() `

>得到最大活动时间(生存时间):`session.getMaxInactiveInterval() `

>设置最大活动时间(生存时间):`session.setMaxInactiveInterval(int) `
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值