【web容器】tomcat

举报
huahua.Dr 发表于 2021/07/13 17:53:12 2021/07/13
【摘要】 web容器早起的web应用主要用于浏览一些静态资源,如文章、新闻等信息,但是只有HTTP服务器(如Apache,Nginx等),当浏览器请求HTTP服务器时,HTTP服务器返回一些静态资源,如HTML,浏览器解析这些静态资源,然后呈现给用户。后来静态资源不能满足用户的需求,希望能做一些动态交互,内容动态显示,因此就出现了Servlet。web容器就是servlet+HTTP服务器的结晶。

一、web容器

早起的web应用主要用于浏览一些静态资源,如文章、新闻等信息,但是只有HTTP服务器(如Apache,Nginx等),当浏览器请求HTTP服务器时,HTTP服务器返回一些静态资源,如HTML,浏览器解析这些静态资源,然后呈现给用户。

后来静态资源不能满足用户的需求,希望能做一些动态交互,内容动态显示,因此就出现了Servletweb容器就是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 + servleta 
3: servle 
We 
T o mCat 
•Java 
Db 2 
Mys ql 
Oracel 
Infr omix

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文件;

如下图:

conf 
tem p 
webapps 
work 
BUILDING.txt 
CONTRIBUTING.md 
LICENSE 
NOTICE 
README.md 
RELEASE-NOTES 
RUNNING.txt 
2018/8/12 9:21 
2018/8/12 9:21 
2018/8/12 9:21 
2018/8/12 9:21 
2018/8/12 9:21 
2018/8/12 9:21 
20 KB 
57 KB 
17 KB

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的体系结构

         计算机生成了可选文字:
“咖埘引
context(webn用)
context(webüä)
Context(webü)

Tomcat的具体工作流程

         

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。