return " " 2017-09-22 05:16 采纳率: 75%
浏览 1089
已采纳

服务器获调用getSession得到的session和前台加载的jsp文件的session的区别

1·· 一次会话是指一个客户打开浏览器,访问我们的网站到关闭浏览器,的整个过程,这个过程就是一次会话,一次会话就是一个session对象对吗??
2·· 服务器的Servlet调用getSession的时候,获取到的是前台加载jsp的时候jsp文件中的session(内置对象)吗?

3·· 服务器的Servlet调用一次getSession的时候,如果先前前台已经加载了多个jsp文件,那么每个jsp文件都会有一个内置的session(内置对象),那服务器的Servlet得到的是哪一个session呢??
4·· 服务器的session和前台每个jsp文件中的session内置对象的数据是共享的吗??

5·· 如果服务器调用getSession获取到的是这次会话的session(浏览器打开第一次发送请求到服务期,到关闭浏览器的整个过程),那这些jsp中的session有到哪去了??

jsp中的session和服务期getSession是获取到的session肯定是有区别的

  • 写回答

3条回答 默认 最新

  • Tsui丶 2017-09-22 07:59
    关注

    Session在何时创建呢?

      当然还是在服务器端程序运行的过程中创建的,不同语言实现的应用程序有不同创建Session的方法,而在Java中是通过调用HttpServletRequest的getSession方法(使用true作为参数)创建的。在创建了Session的同时,服务器会为该Session生成唯一的Session id,而这个Session id在随后的请求中会被用来重新获得已经创建的Session;在Session被创建之后,就可以调用Session相关的方法往Session中增加内容了,而这些内容只会保存在服务器中,发到客户端的只有Session id;当客户端再次发送请求的时候,会将这个Session id带上,服务器接受到请求之后就会依据Session id找到相应的Session,从而再次使用之。总而言之:
    

    创建:sessionid第一次产生是在直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建。

    删除:超时;程序调用HttpSession.invalidate();程序关闭;

    session存放在哪里:服务器端的内存中。不过session可以通过特殊的方式做持久化管理(memcache,redis)。

    session的id是从哪里来的,sessionID是如何使用的:当客户端第一次请求session对象时候,服务器会为客户端创建一个session,并将通过特殊算法算出一个session的ID,用来标识该session对象

    创建过程类似于下:
    (创建session之后,服务器会发送请求 请求中就带有sessionId )
    那么可想而知:
    判断sessionId是否存在
    不存在创建session

    存在就根据Id取session

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。