什么是session?

session对象是用来在每个用户之间分别保存每个用户信息的对象,以便跟踪用户的操作状态。session的信息保存在server端,session的id保存在client的cookie中。

比如我们乘坐火车就能够看做是一个session。当我们乘坐火车的时候。我们须要持有一张车票。车票就相当于是一个cookie。而车票上的座位号就相当于是sessionId。

当我们须要訪问列车的时候。检票员会事先检查我们是否持有cookie,假设有就依据cookie里的内容(sessionId) 来推断使用者。假设没有会再一次创建。

session原理:张三和李四分别请求訪问页面,Tomcatserver依据需求划分出一块内存来设置session。将此次会话信息保留在server端上,同一时候为这两个session分配sessionID,并传到client浏览器,交由由cookie来进行管理。当訪问完之后。下次张三须要继续訪问。就会将cookie的sessionID传到server上,进行寻找空间。假设有则继续运行。假设没有则又一次创建一个session。

 session超时:所谓超时是指 session多久未被訪问,就自己主动销毁掉。在Tomcat中默认是30分钟。假设30分钟,session未被訪问,这个session就被释放掉。

 URL-rewriting:是说假设client浏览器禁用或是不支持cookie,将进行URL地址重写。即将该用户aession的id信息重写到URL地址中。

server可以解析重写后的URL获取session的id。

这样即使client不支持cookie,也可以使用session来记录用户状态。

session的生命周期有非常多人都说跟浏览器页面同生共亡。

但存有一点点的疑惑。所以在此不加以叙述。

以上是对session的一个小小总结,如有不足之处,还望不吝赐教!

JSP内置对象—session的更多相关文章

  1. JSP内置对象——session

    sessionsession表示客户端与服务器的一次会话Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所进过的这段时间,也就是用户浏览这个网站所花费的时间从上述定义中可以看 ...

  2. Jsp内置对象-session

    session内置对象介绍 个人理解:session因为是唯一的, session是与请求有关的会话期,它是java.servlet.http.HttpSession类的对象,用来表示和存储当前页面的 ...

  3. JSP内置对象——session对象

    举个购物流程的例子: 这整个购物过程,它是属于一次回话.那么这个session是保存在服务器内存当中,并且它保存着不同用户对应的session,一个用户对应一个session.看下面这幅图: 从图中可 ...

  4. JSP内置对象Session

    创建和获取客户的会话 setAttribute()与getAttribute() session.setAttribute(String name , Object obj) 如session.set ...

  5. jsp内置对象-session对象

    一.session概述 隐含对象session是javax.servlet.http.HttpSession接口实现类的对象,用于保存用户的状态信息. 在web开发中,服务器为每个用户浏览器创建一个会 ...

  6. JSP内置对象--session对象(getId(),getCreationTime(),getLastAccessedTime(),isNew(),invalidate(),setAttribute(),getAttribute())

    session对象是javax.servlet.http.HttpSession接口的实例,但是不像HttpServletRequest或HttpServletResponse一样,有父接口,他没有父 ...

  7. Java学习-jsp内置对象Session

  8. JSP内置对象的使用(一)

    JSP九大内置对象是:request.response.session.application.out.pagecontext.config.page.exception. JSP常用的内置对象是:o ...

  9. JSP内置对象seesion

    什么是session session表示客户端与服务器的一次会话 Web中的session指的是用户在浏览某网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间 从上述定 ...

随机推荐

  1. Docker实战-编写Dockerfile

    一.编译镜像 1. 编译镜像 Dockerfile类似于Makfile,用户使用docker build就可以编译镜像,使用该命令可以设置编译镜像时使用的CPU数量.内存大小.文件路径等 语法:doc ...

  2. Android MPAndroidChart LineChart 显示数据格式化

    最近帮助同学,使用MPAndroidChart 控件,在图表显示时候, class MyValueFormatter implements IValueFormatter { @RequiresApi ...

  3. iOS全局变量的声明和使用

    在一个项目中,我们可能需要定义几个全局变量,在我们程序的任何位置都可以进行访问,提高我们的开发效率.在iOS中我们如何来实现呢?我们主要使用的是AppDelegate类来实现.如下: (1)AppDe ...

  4. Error Installing Tivoli Directory Server (TDS) for TNPMW1.3

    Install TDS with error "GLPCTL004E Failed to create database instance: 'ldapdb2'."   Error ...

  5. 使用EGit插件将Eclipse现有项目分享到git@osc

    . . . . . 程序员一定要养成使用版本管理工具的好习惯,即使是自己一个人开发的项目也要加入到版本管理工具中.使用版本管理工具主要有两个好处:一个是更好的管理多个副本,这个优势不用说了:另一个就是 ...

  6. regsvr32.exe是什么东西

    Regsvr32命令修复系统故障实例使用过activex的人都知道,activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的activex控件注册,但如果你拿到的一个控件需要 ...

  7. TCP 和 UDP 在socket编程中的区别(转)

    一.TCP与UDP的区别 基于连接与无连接  对系统资源的要求(TCP较多,UDP少)  UDP程序结构较简单  流模式与数据报模式  TCP保证数据正确性,UDP可能丢包  TCP保证数据顺序,UD ...

  8. python-opencv 图像二值化,自适应阈值处理

    定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果. 一幅图像包括目标物体.背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用 ...

  9. calico集成详解

    一.摘要 ======================================================================================= 包括三项: c ...

  10. 理解ArrayList与LinkedList的区别

    一.先来看看ArrayList与LinkedList 在JDK中所在的位置 从图中可以看出,ArrayList与LinkedList都是List接口的实现类,因此都实现了List的所有未实现的方法,只 ...