what is Servlet Container[转载]
1 在这个博客中,我将描述一下web服务器、Servlet容器的基本概念,以及Servlet容器和jvm之间的关系。我想要证明的是Servlet容器不过就是一个java程序。
2 什么是web服务器
在了解什么是Servlet容器前,我们需要先知道什么是web服务器。

web服务器使用http协议传输数据。下面是一个简单的例子:一个用户在浏览器中输入一个url(例如,www.baidu.com),然后它将会获取到一个web页面。因此,web服务器做的事情是发送一个web页面给浏览器。http协议指定了传输的请求和响应的数据格式。
3 什么是Servlet容器
就上面的例子,client/server模式只是传输静态的文件,client告诉server我需要哪个文件,然后server就把它传给client。如果用户想要获取的页面是基于它的输入的,这个基本的静态文件传输功能是不够的。Servlet容器的基本思想是在服务器端使用java动态生成web页面。所以,本质上Servlet容器是server的一部分,是它和Servlet进行交互的。

4 什么是Servlet
Servlet是javax.servlet包定义的一个接口。它生命了一个Servlet生命周期中的三个基本的方法,init()、service()和destroy()。这三个基本方法由每个Servlet所实现,并且在特定的时间由服务器所触发。
4.1 init()方法在Servlet生命周期的初始化阶段被调用。它以javax.servlet.ServletConfig接口对象为参数,来获取web应用的初始化参数。
4.2 service ()方法被每个请求所触发,每个请求在自己的线程中被serviced,也就是说,每次service()方法被调用都是在自己的线程中。Servlet容器为每个请求调用service()方法。service()方法辨别请求的类型,然后把它分发给合适的处理方法。
4.3 destroy()方法在Servlet对象需要被销毁的时候调用。它释放Servlet对象所持有的资源。
Servlet也是运行在JVM上,Servlet容器负责Servlet的创建、执行和销毁。
5 Servlet容器和服务器是怎样处理一次请求的
第一步,web服务器接收到一个http请求;
第二步,web服务器将请求转发给Servlet容器;
第三步,如果对应的Servlet还没有被加载,那么该Servlet将会被动态加载进Servlet容器的地址空间;
第四步,Servlet容器触发Servlet的init()方法,该方法只会在加载的时候触发一次;
第五步,Servlet容器触发Servlet的service()方法来处理http请求,从请求中读取数据并且生成响应。这个Servlet还在Servlet容器的地址空间中,还可以处理其它的http请求;
第六步,web服务器将动态生成的响应返回给客户端。
6 jvm的角色
使用servlet来让jvm在独立的java线程中来处理每个请求是Servlet容器的一个关键的优势。每个servlet是一个具有特殊组件的java类来对应http请求。Servlet容器的主要功能是将请求转发给正确的Servlet处理,然后再把处理的结果交给web服务器。在大多数情况下,Servlet容器运行在一个jvm实例中,但是当Servlet容器需要多个jvm实例时,也有解决方案。
问题,当多个同类型的http请求来了时,Servlet容器中的Servlet对象需要同时服务多个线程的话,线程安全如何保障?
what is Servlet Container[转载]的更多相关文章
- What is the difference Apache (Http Server) and Tomcat (Servlet Container)
The Apache Project The Apache Project is a collaborative software development effort. Its goal is to ...
- Web container==Servlet container
Web container From Wikipedia, the free encyclopedia (Redirected from Servlet container) Web co ...
- 1.端口被占用问题:Embedded servlet container failed to start. Port 8097 was already in use.
1.端口被占用问题:Embedded servlet container failed to start. Port 8097 was already in use.netstat -anonetst ...
- SpringBoot项目 org.springframework.boot.context.embedded.EmbeddedServletContainerException: Unable to start embedded Jetty servlet container报错
SpringBoot项目启动报错 ERROR 2172 --- [ main] o.s.boot.SpringApplication : Application startup failed org. ...
- MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet(转载)
转载地址:http://blog.csdn.net/21aspnet/article/details/21867241 1.安装准备 1).下载安装MyEclipse2014,这已经是最新版本. 2) ...
- JavaWeb的学习之Servlet(转载自孤傲苍狼)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- Chapter 2: A Simple Servlet Container
一.这一章从头构建一个简单的Servlet容器,可以处理Servlet和静态资源(如html文件/图片等). 要处理Servlet,必须遵循javax.servlet.Servlet规范,而处理静态资 ...
- Javaweb基础--->Servlet(转载)
今天看到这篇博客,感觉还不错,拿来借鉴学习一下. 一.Servlet 是什么? Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客 ...
- servlet container:tomcat jetty and undertow
1 spring boot内嵌容器支持tomcat.jetty和undertow 但是undertow性能最好,详见: https://examples.javacodegeeks.com/enter ...
随机推荐
- 笔试算法题(33):烙饼排序问题 & N!阶乘十进制末尾0的个数二进制最低1的位置
出题:不同大小烙饼的排序问题:对于N块大小不一的烙饼,上下累在一起,由于一只手托着所有的饼,所以仅有一只手可以翻转饼(假设手足够大可以翻转任意块数的 饼),规定所有的大饼都出现在小饼的下面则说明已经排 ...
- LUA-点号和冒号
由于LUA中是模拟类,没有class, 所以这里是使用.号来访问实例的成员 re.SetActive(re, re.activeSelf == false); 而冒号: 则是种语法糖,省略了上面代码 ...
- 树莓派 -- oled 续(2) python
上文中的代码通过wiringPi的API调用devfs API来显示图片. 这里分析的Python代码也通过类似的方法来显示图片. 主要用到了两个Library. import spidev impo ...
- Codeforces Round #372 (Div. 2) A .Crazy Computer/B. Complete the Word
Codeforces Round #372 (Div. 2) 不知不觉自己怎么变的这么水了,几百年前做A.B的水平,现在依旧停留在A.B水平.甚至B题还不会做.难道是带着一种功利性的态度患得患失?总共 ...
- COJ 1163 乘法逆元的求解
乘法逆元就是求一个 a/b = c(mod m)在已知a%m , b%m 的条件下 求c的解 #include <cstdio> #include <cstring> usin ...
- [luoguP1019] 单词接龙(DFS)
传送门 不知为什么,判断全部包含反而A不了,不判断反而A了,╮(╯▽╰)╭ 代码 #include <cstdio> #include <iostream> #define m ...
- 【bzoj3505】[Cqoi2014]数三角形
[bzoj3505][Cqoi2014]数三角形 2014年5月15日3,5230 Description 给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4×4的网格上的一个三角 ...
- 食物(bzoj 3280)
Description 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险! 我们暂且不讨论他有多么NC,他又幻想了他应该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数. 他 ...
- 文件权限设置与http,php的关系
在web服务器上的文件要使用什么权限比较好呢.我开始的时候直接都是777,后台安全部门的同事,通过漏洞把我管理的服务器给搞了.报告到我这里,我才意识到权限的设置不能马虎.环境采用nginx+php,一 ...
- msp430入门编程01
msp430单片机最小系统 msp430入门学习 msp430入门编程