关于ServletContext,Session,Request三者的关系

Conqueror_lee 2008-03-26 06:57:18
我是初学者,已知道三者都是容器,但不清楚三者的关系,听说是ServletContext包含Session,Session又包含Request,不知道对不对,有点迷惑!!

如果是上述所说那样,那请问Servlet又扮演什么角色呢??

Servlet是容器吗??

如果有图的话,请提供个我学习一下,这样更能详细的说明问题,我想!

感谢回复的朋友!!!!
...全文
2098 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
xwq0216 2012-11-02
  • 打赏
  • 举报
回复
关注一下!
JudeaWolf 2010-10-14
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 judeawolf 的回复:]

[/Quote]ghjkl
JudeaWolf 2010-10-14
  • 打赏
  • 举报
回复
songfuqiang 2008-03-31
  • 打赏
  • 举报
回复
收藏下有时间慢慢研究.
Conqueror_lee 2008-03-27
  • 打赏
  • 举报
回复
能不能这样理解?

ServletContext,Session,Request这三个容器都放在WEB容器中如TOMCAT中,相当于容器中再套容器,而ServletContext就相当与一个能够控制Servlet这个的一个管家一样,管理着它的生命周期之类和通信只类的,而Session容器就是管理或者说控制请求来到时给客户端发送一个SessionID,并且自己服务端也保存一个SessionID,以便如果下次得到请求时做SessionID的比较,看是否是同一种请求,如果是就响应的速度就快一些.而Request容器之管理请求对象的,在建立会话的同时Request就建立了,但Request之做请求的事,比如从客户端得到客户相映的信息等,例如:属性值,报头信息,参数信息等等.但如何响应客户端,就需要通过会话容器保存的ID或者其他的信息来决定,再通过Response对象响应给客户端.

这样理解行吗??我觉得挺绕口的
Conqueror_lee 2008-03-27
  • 打赏
  • 举报
回复
11楼朋友,你说request对象可以从它的的setAttribute方法中传递一个对象,用来验证对方信息,获得发送发的文件内容??

这是什么意思,,setAttribute这个方法不是设置属性的方法吗???他怎么能获得文件内容呢???应该是getAttribute吧!!!
suloong 2008-03-27
  • 打赏
  • 举报
回复
webapp 指的就是那个包含了/WEB-INF/web.xml的,能打成war包的程序。这是java ee定义的标准的东西,符合这种格式的文件就可以被部署到java ee web container里。ServletContext, servlet, session 等都要不是容器,而是容内被管理的对象。容器是那个幕后黑手,它摆平一些低层问题,控制容器内组件的生命周期。你可以把容器想像成CD机,servlet等就是CD机里的CD,同样的CD机,放入不同的CD就可以播放出不同的音乐。
Conqueror_lee 2008-03-27
  • 打赏
  • 举报
回复
我还是觉得WEB应用程序这个概念有点太抽象了!!!
Conqueror_lee 2008-03-27
  • 打赏
  • 举报
回复
能说一下一个会话的具体过程吗,10楼回答了,但我还是没怎么看懂,客户端发起请求然后产生一个ID,这个是一个会话,还是请求,产生了ID,客户端得到了响应后,这样才算是一个会话过程呢??


11楼,,WEB应用程序能理解成TOMCAT吗??
ee4456 2008-03-27
  • 打赏
  • 举报
回复
WEB应用程序就是webapp咯,你每次不是把他部署到tomcat应用服务器上了吗?你就理解成一个b/s架构的系统就是了,比如说网站就是等等。//
goldlive_8888 2008-03-27
  • 打赏
  • 举报
回复
ServletContext是一个应用程序与Web容器(tomcat之类)交互的接口,同时它也是管理应用程序资源的对象,通过它可以读取web.xml中一些配置,如<context-param>中的信息,读取应用中的资源等。
session是一个会话对象,也就是说当客户端访问服务器页面时,它才产生,原理是服务器对每个客户端产生一个sessionid值,并把它也保存在客户端,每次请求时验证这个sessionid是否是创建了sessionid的客户端,在服务器端对应这个sessionid会创建一个缓存区,存储一些相关信息,程序员可以操作,如被用于购物车,存储用户信息等,这个区域只有对特定用户有访问权限,对其他客户是拒绝访问的,这就是一个会话。
request是一个请求对象,也就是说它的生命很短暂,只在一个请求中存在,如一个页面到另一个页面,一个页面到servlet或action,一个servlet或action到jsp页面等,你可以用它的setAttribute方法传递需要的信息(对象),验证请求方的信息,获得请求方发过来的文件内容等。
Conqueror_lee 2008-03-27
  • 打赏
  • 举报
回复
一个ECLIPISE中的WEB项目算不算WEB应用程序??
Conqueror_lee 2008-03-27
  • 打赏
  • 举报
回复
或者说"WEB应用程序"指的是什么??
Conqueror_lee 2008-03-27
  • 打赏
  • 举报
回复
继续问2楼..

你说的WEB应用程序都有一个与之相关的上下文,这"WEB应用程序"该怎么理解呢?能打个合适的比喻帮助我理解吗,我有点笨!!
badonly 2008-03-27
  • 打赏
  • 举报
回复
等待有个明确的答案
ee4456 2008-03-27
  • 打赏
  • 举报
回复
各种继承的环境都不一样,这个没必要在乎,你可以根据你的要求,下适合的。估计你和我一样用的myecilpse6.0我的也是700MB,还是BLUE版本的,最新刚下来的
pyantking 2008-03-27
  • 打赏
  • 举报
回复
不是吧,我ECLIPSE加MYECLIPSE一起才102M,你的项目不是全都放在ECLIPSE里面吧
Conqueror_lee 2008-03-27
  • 打赏
  • 举报
回复
请教一下我的My Eclipse里有一个OSGI/Minmum-1.0和1.1的包,这是做什么用的???

为什么我的My Eclipse有700多M啊,太大了,各位都有那么大吗??
ee4456 2008-03-26
  • 打赏
  • 举报
回复
servlet是服务器端的小程序,可以通过context得到,你默认的不是有个web.xml吗?那里边你配置的servlet不就把servlet的映射配置到WEB应用程序都一个与之相关的Servlet上下文。。当你/xxxservlet的时候,JVM或者说TOMCAT是不是根据上下文找的你的servlet对象呢?
我是这么理解的。。
Conqueror_lee 2008-03-26
  • 打赏
  • 举报
回复
"运行在JVM中的每一个WEB应用程序都一个与之相关的Servlet上下文."这句话该怎么理解啊??

Servlet上下文就是ServletContext这个容器,那也就是说每一个WEB应用程序都有一个ServletContext这个容器,那Servlet又是做什么,Servlet和上下文之间有什么关系呢???

81,115

社区成员

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

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