【web容器】tomcat
一、web容器
早起的web应用主要用于浏览一些静态资源,如文章、新闻等信息,但是只有HTTP服务器(如Apache,Nginx等),当浏览器请求HTTP服务器时,HTTP服务器返回一些静态资源,如HTML,浏览器解析这些静态资源,然后呈现给用户。
后来静态资源不能满足用户的需求,希望能做一些动态交互,内容动态显示,因此就出现了Servlet。web容器就是servlet+HTTP服务器的结晶。关于servlet上面已经介绍。
为什么需要web容器
Servlet是一个实现servlet接口的java应用,并没有main方法,那么它是如何启动一个servlet?,如何寻找一个servlet?,如何结束一个servlet?等等,这就需要我们另外一个java应用,那就是web容器,用于管理servlet应用,因此也可以称之为servlet容器,例如Tomcat也就是这样的一个容器;由web服务器发送过来的HTTP请求都会经过Web容器去生成对应的servlet实例处理该HTTP请求,servlet实例调用service()方法处理HTTP请求,最后响应结果给Servlet容器,servlet容器在响应给Web服务器。
web容器的作用
-
通信支持
利用容器提供的方法,你可以简单的实现servlet与web服务器的对话。否则你就要自己创建socket,监听接口、新的流等一系列复杂的操作。而容器的存在就帮我们封装这一系列复杂的操作。使我们能够专注于servlet中的业务逻辑的实现。
-
生命周期管理
容器负责servlet的整个生命周期。如何加载类,实例化和初始化servlet,调用servlet方法,并使servlet实例能够被垃圾回收。有了容器,我们就不用花精力去考虑这些资源管理垃圾回收之类的事情。
-
多线程支持
容器会自动为接收的每个servlet请求创建一个新的java线程,servlet运行完之后,容器会自动结束这个线程。
-
声明式实现安全
利用容器,可以使用xml部署描述文件来配置安全性,而不必将其硬编码到servlet中。
-
jsp支持
容器将jsp翻译成java servlet代码
二、Tomcat
什么是Tomcat
tomcat是一个Web容器,一个Servlet应用的容器。也可以充当web静态服务器,但没有如Nginx等这些那么专业。
Tomcat的目录结构
Tomcat目录详细说明:
|---bin:存放启动和关闭tomcat脚本,还可以设置JDK路径,修改tomcat的内存等
|---conf:存放不同的配置文件(server.xml和web.xml等);
|---lib:存放Tomcat运行需要的库文件(JARS);
|---logs:存放Tomcat执行时的LOG文件;
|---temp:存放tomcat运行时产生的临时数据文件;
|---webapps:Tomcat的主要Web发布目录(包括应用程序示例);
|---work:存放tomcat运行时编译后的文件,如jsp编译后产生的class文件;
如下图:
Tomcat的配置文件
- Web.xml
有两种web.xml配置文件:/conf/web.xml和个人web项目下的/WEB-INF/web.xml
- /conf/web.xml
- 设置request和response的字符编码
- 定义了一个默认的Servlet应用(主要是为所有web应用提供静态资源)
- 该目录下的web.xml配置文件,定义了所有加载在tomcat实例里面的servlet/web应用所需的一些默认配置;该文件在web应用项目启动之前就会被加载了,之后就是加载自定义web项目中的/WEB-INF/web.xml文件。
- 一些通用的资源配置在/conf/web.xml下配置,一些明确的web应用资源定义定义在/WEB-INF/web.xml文件中
- /WEB-INF/web.xml
-
当我们启动一个WEB项目容器时,容器包括(JBoss,Tomcat等)。首先会去读取web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常的被启动起来。该web.xml里面可以配置各种标签。
-
web.xml的加载顺序是: <context-param>-> <listener> -> <filter> -> <servlet>
-
Tomcat的体系结构
Tomcat的具体工作流程
- 点赞
- 收藏
- 关注作者
评论(0)