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 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类