servlet在接收到req和res对象后在service方法执行完后,req和res对象经历了什么变化

aogusitin 2016-12-31 04:28:14
servlet通信过程分析
1、web浏览器发送一个请求
2、web容器捕获这个请求,并创建空的req和res对象
3、web容器根据请求信息,调用req对象的一系列方法向req的请求头字段赋值
4、web容器根据请求的url将req和res对象传递到到相应的servlet.service()方法中,相当于说是web容器调用了servlet的service()方法,若url为.html则分发到名为default的系统默认servlet中,若不是则分发到相应的servlet中
5、servlet的service()方法解析req对象,并根据头信息的设置要求,通过res对象的方法向res对象的某些属性赋值,即填充好了响应头信息和响应体信息
6、service()方法完成后,通知web容器,web容器读取响应信息
7、web容器将响应信息发送给浏览器


问题:
1、以上过程为个人总结,不知道哪些步骤是存在问题的,或者哪些执行主体不对
2、在第三步中web容器向req的请求头字段赋值,首先req对象并没有set方法,web容器是如何赋值的,其次赋值的源代码又是怎么的一个过程,req对象并没有这些属性啊
3、第五步中service()方法解析req对象,那必然也会调用req的一系列的get方法,在service()方法源码中,并没有看到哪里存在调用get方法
4、第五步中service()方法,填充响应头,service方法中并没有看到哪里有在调用setxxx或者addxxx方法,填充响应体是通过getOutputStream()或者是getWriter()方法中,又是哪里有主动调用这些方法,这些方法所返回的变量又是谁在接收
5、web容器如何读取响应信息,又是怎么发送过去的,最好能看到代码


问题比较多=。=困扰很久了
我只是看到了各种方法的定义,没有看到方法的执行代码,很是困惑!
...全文
214 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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