Session与ServletContext有什么关系?

Conqueror_lee 2008-03-31 07:09:28
ServletContext是一个Web应用对象,也是一个Servlet容器,一个Web应用里的所有Servlet都共享其资源或数据.

那请问Session跟它有什么联系?

Session应该也是容器吧,我查了查JEE的API文档,里面的HttpSession里面也能得到ServletContext对象,这说明什么?Session跟一个Web应用有什么关系或联系呢?

感谢大家肯帮助我,谢谢你们了!!!!
...全文
967 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangdongqiang8 2011-05-23
  • 打赏
  • 举报
回复
你可以把session当做看电影的门票,当你在电影院门口买票(浏览器请求)是电影院会给你一张票,但是吧其实这里给你的只是一张电影票的编号(sessionID),当你进入影院看电影时,影院可能会中途查票(服务器却是对每次请求都对sessionId进行验证),而这张电影票除了可以让你看电影外,还可以记录你在电影院里的消费情况(有点儿像会员卡了),但是当你离开电影院之后,电影院就会销毁这场电影关于你的票据记录(当然正常情况下是不会的,也就是session失效,就像是电话线断了,但是因为是无状态协议,也就说不是想电话那样一直通话,而是需要的时候,比如发送请求的时候,才会根据sessionid来进行验证,就像账号密码似地,然后服务器可以吧你的一些操作或者权利权限放在session中,以保证你下一次请求的时候,服务器能够认出是你)
说的有点儿乱了
IceJelly 2011-05-23
  • 打赏
  • 举报
回复
结帖率亮了
haitao_zhang 2011-05-23
  • 打赏
  • 举报
回复
你把session 当成 身份证
你把application 当成 派出所
就可以理解了。
小二郎 2011-05-23
  • 打赏
  • 举报
回复
学习。。。。。
facc 2011-05-23
  • 打赏
  • 举报
回复
区别在于session是局部的,servletContext是共享的.
当换了另一个窗口开始访问又从0开始计数,而servletContext则是接下去计数.
facc 2011-05-23
  • 打赏
  • 举报
回复
还是不懂
duancj_1982 2008-06-12
  • 打赏
  • 举报
回复
我觉得session是由servletContext维护的一个线程变量
songfuqiang 2008-04-03
  • 打赏
  • 举报
回复
学习..
临远 2008-03-31
  • 打赏
  • 举报
回复
会话都在服务器啊。

每个用户打开浏览器就服务器就会给它生成一个sessionId,浏览器或者把这个sessionId放到cookie里,或者每次请求都带在url后边(自动的),然后服务器就拿到这个sessionid,在内存里翻啊翻啊,翻出对应的session来,就这么对应上的。

无聊吧。
薛定谔之死猫 2008-03-31
  • 打赏
  • 举报
回复
Session代表浏览器和WEB服务器的会话状态,由于HTTP是无状态的,当浏览器向WEB服务器发送请求,WEB服务器在处理请求并将处理结果返回浏览器后,就会主动断开连接(当然这个在HTTP1.0和HTTP1.1协议之间稍有不同),这样如果你的浏览器再次发送请求时,WEB服务器不知道你之前干过什么,这样对于一些有事务性的业务就没办法满足了,因此Servlet容器就在后台保存一个Session对象,用于记录这些信息,如果你不使用浏览器的Cookie或在服务器端使用URL重定向的话,过缺省的一段时间后,Servlet容器就会销毁这个Session对象,后继的请求就会创建的新的Session来记录相关信息。
ServletContext是针对WEB应用程序来说的,是WEB应用程序运行在它描述的上下文之下,和Session一样,你可以手动在上面放置一些信息,以便后继的操作中提取

你说的内存空间问题其实你不用去关心的,这是JVM解决的问题,并且Java在这一块几乎就是透明,你只要创建,满足条件的时候垃圾回收机制会进行内存的回收

说的粗糙了点,不知道你明白没有
jinweifu 2008-03-31
  • 打赏
  • 举报
回复
会话(从打电话来理解)是维护一系列对话的工具,一个会话由多个对话组成,由于HTTP WEB是无状态的,就是一次对话,下一次可能就不知道以前进行到什么程度了,所以在服务器端维护一个Session对象,每一个客户端都对应有自己跟服务器对话的状态信息集合,那个集合就是SESSION(会话),最好去看看网络通信,这样就能明白会话有多重要
同理,由于Servlet容器也是一个共享的资源,很多servlet需要得到与自己本身相关的信息,包括自己所处的环境(环境是什么呢:就是所有与自己有联系的资源的集合,这个就得根据抽象程度了)
上下文(Context)是维护某个资源状态的东西,根据当前所在的层次对不同CONTEXT访问以取得关心的信息

以上都是本人自己的理解,不知道更正确的理解是怎样的?
jinweifu 2008-03-31
  • 打赏
  • 举报
回复
你如果是美女的话打个电话我告诉你
Conqueror_lee 2008-03-31
  • 打赏
  • 举报
回复
快沉了啊!!!
Conqueror_lee 2008-03-31
  • 打赏
  • 举报
回复
LS,,是在不同的内存空间上吗??

还是这100个都在WEB应用容器里??
benro 2008-03-31
  • 打赏
  • 举报
回复
session是web服务器对每一个客户端产生的,如果有100个客户端同时访问web服务,那么在服务器的内存中就会有100个不同的session。
Conqueror_lee 2008-03-31
  • 打赏
  • 举报
回复
我的意思是,我不知道该怎么去理解Session,太抽象了,而且这个Session对象在服务器里是一个独有的内存空间还是放在Web应用容器中的???

比如说,Web应用容器相当于一个大盒子,是不是这个Session对象的空间也放在这个盒子里的,还是Session对象是放在另一个地方的?

我的理解就是Web应用容器是一个盒子,里面放了Servlet对象和Session对象,但这样觉得理解起来挺困难的,所以才出来问问,怕走如歧途!!!!
Conqueror_lee 2008-03-31
  • 打赏
  • 举报
回复
没看懂!!5555555555555
临远 2008-03-31
  • 打赏
  • 举报
回复
请参考我们教程中对session的介绍:

http://www.family168.com/tutorial/jsp/html/jsp-ch-04.html
pyantking 2008-03-31
  • 打赏
  • 举报
回复
谈谈自己的看法:
HttpSession相当于JSP中的session
ServletContext相当于JSP中的application。
两者的作用域,范围不一样

ServletContext是servlet中定义的接口,当然HttpSession可以调用到ServletContext对象

书名:JSP 2.0 技术手册(电子书) 格式:PDF 出版:电子工业出版社 作者:林上杰、林康司 本书图文并茂,以丰富的实例为引导,全面介绍了主流的 Java Web 开发技术—— JSP 2.0,重点介绍Java在展示层的两项重要技术:Java Servlet与JavaServer Pages。 它们是最重要的 Java 核心技术。对这两项技术的深入了解,将有助于您未来对于 JavaServer Faces(JSF)技术以及Java Web Services技术的学习 目录 第一章 安装执行环境 1-1 安装 J2SDK 1.4.2 1-2 安装 Tomcat 5.0.16 1-3 安装 JSPBook 站台范例 1-4 安装 Ant 1.6 第二章 Servlet 2.4 简介 2-1 Servlet 简介 2-2 First Servlet Sample Code 2-3 Servlet 的生命周期 2-4 Servlet 范例程序 2-5 Servlet 2.4 的新功能 第三章 JSP 2.0 简介 3-1 JavaServer Pages 技术 3-2 What is JSP 3-3 JSP 与 Servlet 的比较 3-4 JSP 的执行过程 3-5 JSP 与 ASP 和 ASP+ 的比较 3-6 JSP 2.0 新功能 第四章 JSP 语法 4-1 Elements 和 Template Data 4-2 批注(Comments) 4-3 Quoting 和 Escape 规则 4-4 Directives Elements 4-5 Scripting Elements 4-6 Action Elements 4-7 错误处理 第五章 隐含对象(Implicit Object) 5-1 属性( Attribute ) 与范围( Scope ) 5-2 与 Servlet 有关的隐含对象 5-3 与 Input / Output 有关的隐含对象 5-4 与 Context 有关的隐含对象 5-5 与 Error 有关的隐含对象 第六章 Expression Language 6-1 EL 简介 6-2 EL 语法 6-3 EL 隐含对象 6-4 EL 算术运算符 6-5 EL 关系运算符 6-6 EL 逻辑运算符 6-7 EL 其他运算符 6-8 EL Functions 第七章 JSTL 1.1 7-1 JSTL 1.1 简介 7-2 核心标签库(Core tag library) 7-3 I18N 格式标签库(I18N-capable formatting tags library) 7-4 SQL 标签库(SQL tag library) 7-5 XML 标签库(XML tag library) 7-6 函数标签库(Functions tag library) 第八章 JSP 与 JavaBean 8-1 JavaBean 的简介 8-2 JSP 与 JavaBean 8-3 JavaBean 的范围 8-4 JavaBean 的移除 第九章 网页窗体的处理 9-1 HTML 窗体如何传送数据 9-2 窗体中常见的输入类型 9-3 JSP 处理窗体 9-4 文件上传—— Oreilly 上传组件 9-5 jspSmartUpload ——上传和下载 9-6 本文区输入类型(Textarea) 第十章 Session Tracking 10-1 Stateful & Stateless 10-2 Session Tracking 的四种方法 10-3 Session 的生命周期 10-4 HttpSessionBindingListener 接口 10-5 Shopping Cart 范例程序一 10-6 Shopping Cart 范例程序二 第十一章 Filter 与 Listener 11-1 Filter 简介 11-2 Filter 的运作方式 11-3 实现阶段第一个 Filter 11-4 对请求做统一的认证处理 11-5 ServletRequest 和 ServletResponse 之 Wrapper 类 11-6 使用 Filter 来解决中文问题 11-7 Listener 接口简介 11-8 ServletContext Listener 11-9 HttpSession Listener 11-10 ServletRequest Listener 第十二章 JSP 执行环境与开发工具 12-1 Tomcat 5.0 的介绍 12-2 JSP 开发工具介绍 12-3 Eclipse 简介与安装 12-4 使用 Eclipse 开发 Hello

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧