美文网首页Javaweb…网络项目
Servlet:第五篇【seesion】

Servlet:第五篇【seesion】

作者: __y | 来源:发表于2018-05-22 11:14 被阅读17次

1.session的基本概念

session是另外一种会话技术。不同的是Cookie是保存在浏览器里,session是保存在服务器中。用户在使用浏览器的时候,服务器把用户的信息以某种形式记录在服务器上。相比较于Cookie,session使用上更方便也更灵活,Cookie只能保存字符串,session可以保存对象!

2.session常用API

  • long getCreationTime();【获取Session被创建时间】
  • String getId();【获取Session的id】
  • long getLastAccessedTime();【返回Session最后活跃的时间】
  • ServletContext getServletContext();【获取ServletContext对象】
  • void setMaxInactiveInterval(int var1);【设置Session超时时间】
  • int getMaxInactiveInterval();【获取Session超时时间】
  • Object getAttribute(String var1);【获取Session属性】
  • Enumeration<String> getAttributeNames();【获取Session所有的属性名】
  • void setAttribute(String var1, Object var2);【设置Session属性】
  • void removeAttribute(String var1);【移除Session属性】
  • void invalidate();【销毁该Session】
  • boolean isNew();【该Session是否为新的】

session域对象

session作为域对象只要没被销毁就可以在servlet之间实现通讯。

//初始化session对象
 HttpSession session = request.getSession();
//设置session属性
session.setAttribute("name","Test");

获得上面设置的值

//初始化session对象
 HttpSession session = request.getSession();
String value = (String)session.getAttribute("name");

什么时候用session?
一般我们我们要存进用户级别的数据就用session,只要浏览器不关闭,希望数据还在就用session。

3.session生命周期和有效期

1.session在用户第一次访问服务器的servlet,jsp等动态资源的时候就会被创建且保存在服务器的内存中(如果访问HTML,IMAGE等静态资源的话不会创建)
2.session生成后,用户继续访问,无论是否对session进行读写,服务器都会认为session活跃了一次
3.为了防止内存溢出,服务器会把长时间没有活跃的session从内存中删除,这个时间也就是session的超时时间
4.session默认的超时时间是30分钟,有以下三种方式修改时间:

  • 在Tomcat/conf/web.xml中配置
<session-config>
    <session-timeout>20</session-timeout>
</session-config>
  • 在项目中的web.xml中设置
<session-config>
    <session-timeout>20</session-timeout>
</session-config>
  • 通过setMaxInactiveInterval()

4.Cookie和session比较

1.有效期不同。session周期指的是不活动的时间。比如我们设置了10S,在10S内如果session没有活跃,就失效。但是如果在9S的时候使用session则重新计算,重启,关闭服务器,或者重新加载web应用session也会失效。cookie的生命周期则是按累计的时间来算
2.Cookie存储在客户端,session在服务端
3.对服务器的负担比较。如果并发量过大,session会大量消耗内存,一般推荐使用cookie


先到这,以后更新项目上的应用~

相关文章

  • Servlet:第五篇【seesion】

    1.session的基本概念 session是另外一种会话技术。不同的是Cookie是保存在浏览器里,sessio...

  • Seesion(上)

    Session介绍 一个访问者访问web网站时将被分配一个唯一的id,就是所谓的会话id,这个id可以存储在用户端...

  • 16. session(重点)

    什么是Session: 服务器会给每一个用户(浏览器)创建一个Seesion对象; 一个Seesion独占一个浏览...

  • cookie和seesion使用

    一、cookie在koa2中的ctx对象直接提供了cookie的set和get方法写入cookie:ctx.coo...

  • servlet 笔记

    servlet servlet 声明周期 Servlet 的线程安全 Servlet 获取配置信息 Servlet...

  • Servlet

    Servlet介绍 Servlet开发步骤 创建Servlet 配置Servlet 配置Servlet中设置初始化...

  • sessionStorage与localStorage的区别及应

    一.cookie与session的异同点 获取cookie的方法 cookie与seesion的缺点 二.WebS...

  • UIWebView 和 WKWebView

    公司上一个版本 x.x.x 的 app 发布之后,OOM(Out of Memory) free seesion ...

  • 深入理解Servlet技术

    1. 什么是servlet servlet Servlet是javax.servlet.Servlet包中定义的一...

  • Servlet与Jsp(1)

    Servlet 实现原理Servlet接口使Servlet容器能将Servlet类载入内存,并在Servlet实例...

网友评论

    本文标题:Servlet:第五篇【seesion】

    本文链接:https://www.haomeiwen.com/subject/blthjftx.html