【servlet学习一】:servlet体系结构和工作原理
来源:互联网 发布:济南行知小学作文 编辑:程序博客网 时间:2024/06/01 15:20
servlet体系架构
由于一直对servlet的理解模模糊糊,这次通过学习并记录来加深了解。
目录
- servlet体系架构
- 目录
- servlet是什么
- servlet包括
- servlet生命周期
- servlet工作原理
- servlet是怎么工作的
- servlet实际运用
- 参考资料
servlet是什么
Servlet是在服务器上运行的小程序。一个Servlet就是一个Java类,并且可以通过“request-response”编程模型来访问的这个运行在服务器内存里的Servlet程序。
servlet包括
Servlet API主要由两个Java包组成:
- javax.servlet 在javax.servlet包中定义了Servlet接口及相关的通用接口和类;
- javax.servlet.http 在javax.servlet.http包中主要定义了与HTTP协议相关的HttpServlet类,HttpServletRequest接口和HttpServletResponse接口;
servlet生命周期
在Servlet接口中定义了5个方法,其中3个方法都是由Servlet容器来调用的,容器会在Servlet的生命周期的不同阶段调用特定的方法:
- init(ServletConfig) —— 负责初始化Servlet对象,只调用一次,初次访问servlet时访问。
- service(ServletRquest req, ServletResponse res) ——处理业务逻辑;用户每次访问servlet’都会调用; req获取客户端的信息,res用于向客户端返回信息。
- destroy() —— 负责释放Servlet对象占用的资源。
reload该servlet(webApps)(tomcat页面manager),
关闭tomcat,
关机会调用该方法。
servlet工作原理
servlet 类
与Servlet主动关联的是三个类,分别是ServletConfig,ServletRequest和ServletResponse。这三个类都是通过容器传递给Servlet的;其中,ServletConfig是在Servlet初始化时传给Servlet的,后两个是在请求到达时调用Servlet传递过来的。
servlet网络拓扑
- Web Client 向Servlet容器(Tomcat)发出Http请求
- Servlet容器接收Web Client的请求
- Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中。
- Servlet容器创建一个HttpResponse对象
- Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet 对象。
- HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息。
- HttpServlet调用HttpResponse对象的有关方法,生成响应数据。
- Servlet容器把HttpServlet的响应结果传给Web Client。
servlet是怎么工作的
hostname和port用来与服务器建立TCP连接,后面的URL用来选择在服务器中哪个子容器服务用户的请求。 在Tomcat7中,这种映射工作由专门的一个类完成:org.apache.tomcat.util.http.mapper,这个类保存了tomcat的container容器中的所有子容器的信息。org.apache.catalina.connector.Request类在进入Container容器之前,Mapper将会根据这次请求的hostname和contextpath将host和context容器设置到Request的mappingData属性中,所以当Request进入container容器之前,对于它要访问哪个子容器就已经确定了。
servlet实际运用
我们自己定义的servlet通常去继承HttpServlet或GenericServlet类。 采用MVC框架的实现中,其基本原理是将所有的请求都映射到一个Servlet,然后去实现servie方法,这个方法也就是MVC框架的入口。
参考资料
http://blog.csdn.net/robinjwong/article/details/17700011
http://www.jianshu.com/p/9cf44f932790
- 【servlet学习一】:servlet体系结构和工作原理
- Servlet 工作原理解析(一)
- Servlet生命周期和工作原理
- Servlet生命周期和工作原理
- servlet生命周期和工作原理
- JSP 和 Servlet 工作原理
- JSP和servlet工作原理
- servlet生命周期和工作原理
- Servlet和JSP工作原理
- Servlet生命周期和工作原理
- Servlet工作原理和生命周期
- Servlet 生命周期和工作原理
- Java Servlet原理学习(一)
- 【Java之Servlet(一)】Servlet生命周期与工作原理
- Servlet容器工作原理讲解(一)
- Servlet生命周期与工作原理(一)
- 深入学习----Servlet工作原理解析
- servlet的工作原理和生命周期
- gethostbyname()
- HYSBZ
- Unity3D工程集成到Android工程步骤及问题解决
- Jenkins2.32.1配置与构建部署-邮件配置及构建状态(二)
- java定义二维数组的几种写法汇总
- 【servlet学习一】:servlet体系结构和工作原理
- Class类概述与使用
- fetch跨域问题
- echarts3 中,图表随着窗口的变动而变动(让图表resize有效)
- jQuery 按回车键触发函数
- sftp远程上传文件到阿里云的linux服务器
- 找x
- Java技能清单
- [日推荐] 『TheGolfGame』-小程序有游戏啦?