Tomcat简述介绍
文章目录
- Web服务器
- Tomcat的作用
- Tomcat分析
- 目录结构
Web服务器
Web服务器的作用是接收客户端的请求,给客户端作出响应。
知名Java Web服务器
- Tomcat(Apache):用来开发学习使用;免费,开源
- JBoss(Redhat红帽)
- Weblogic(Orcale):要钱的,使用Tomcat开发,项目写完了,放到Weblogic上运行;
- Websphere(IBM):要钱的,与Weblogic相似。
Tomcat的作用
当用户通过发送过来一个请求后,Tomcat来接收请求,然后给用户返回响应。通常用户都是通常浏览器发出请求,然后浏览器的响应都是html代码。当然,这也不是全部,有时用户可能会通过其他手段向服务器发送请求,而Tomcat返回的响应也可能不是html,也可能是一个文件,一张图片等。
- 作为 Web 服务器
- 处理 HTTP 请求:Tomcat 能够接收客户端(如浏览器)发送的 HTTP 请求,并根据请求内容提供相应的资源。当用户在浏览器中输入一个 URL 并按下回车键时,浏览器会向服务器发送一个 HTTP 请求,Tomcat 可以接收这个请求,并根据请求中的路径信息找到对应的网页文件(如 HTML、JSP 等),然后将这些文件内容返回给客户端浏览器进行显示。
- 静态资源服务:它可以直接处理和提供静态资源,如 HTML 页面、CSS 样式表、JavaScript 文件、图片等。当客户端请求这些静态资源时,Tomcat 会从文件系统中读取相应的文件,并将其发送给客户端,无需额外的处理。
- 作为 Servlet 容器
- Servlet 管理:Servlet 是运行在服务器端的 Java 小程序,用于处理客户端请求并生成动态内容。Tomcat 作为 Servlet 容器,负责加载、实例化和管理 Servlet。当有请求到达时,Tomcat 会根据请求的 URL 映射找到对应的 Servlet,并调用其相应的方法(如 doGet、doPost 等)来处理请求。
- 生命周期管理:Tomcat 管理着 Servlet 的生命周期,包括 Servlet 的初始化、服务请求和销毁。在 Servlet 被加载时,Tomcat 会调用其 init 方法进行初始化;当有请求到来时,调用相应的服务方法处理请求;当 Servlet 不再使用时,Tomcat 会调用其 destroy 方法进行资源释放。
- 作为 JSP 容器
- JSP 编译与执行:JSP(JavaServer Pages)是一种动态网页技术,它允许在 HTML 页面中嵌入 Java 代码。Tomcat 可以将 JSP 文件编译成 Servlet 类,然后像处理普通 Servlet 一样执行这些编译后的 Servlet,从而生成动态的 HTML 页面返回给客户端。
- 支持 JSP 特性:Tomcat 支持 JSP 的各种特性,如表达式语言(EL)、自定义标签库等,使得开发人员可以更方便地创建动态网页。
- 支持 Java Web 应用部署
- 应用部署:开发人员可以将开发好的 Java Web 应用打包成 WAR(Web Application Archive)文件,然后将其部署到 Tomcat 中。Tomcat 会自动解压 WAR 文件,并将应用程序部署到相应的目录下,使其可以被访问。
- 多应用支持:Tomcat 可以同时部署多个 Java Web 应用,每个应用都有自己独立的上下文路径,相互之间不会干扰。这样可以在一个 Tomcat 实例上运行多个不同的 Web 应用,提高服务器资源的利用率。
- 与其他服务器集成
- 反向代理:Tomcat 可以与其他 Web 服务器(如 Apache、Nginx 等)配合使用,通过反向代理的方式将请求转发给 Tomcat 处理。这样可以利用其他 Web 服务器的高性能和稳定性来处理静态资源请求,而将动态请求转发给 Tomcat 处理,从而提高整个系统的性能和可扩展性。
- 集群部署:在高并发场景下,Tomcat 可以进行集群部署,通过负载均衡器将客户端请求均匀地分发到多个 Tomcat 实例上,从而提高系统的处理能力和可靠性。
Tomcat分析
目录结构
-
bin:该目录下存放的是可执行文件,有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要先配置JAVA_HOME和shutdown.bat用来停止Tomcat;
-
conf:这是一个非常非常重要的目录,这个目录下有三个最为重要的文件:
- server.xml:配置整个服务器信息。例如修改端口号,下面会详细介绍这个文件;
- web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!
-
lib:Tomcat的类库,里面是一大堆jar文件。如果需要添加Tomcat依赖的jar文件,可以把它放到这个目录中,当然也可以把项目依赖的jar文件放到这个目录中,这个目录中的jar所有项目都可以共享之;
-
logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中。
-
temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除!
-
webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。
-
work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!**可以把这个目录下的内容删除,再次运行时会生再次生成work目录。**当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下。
-
LICENSE:许可证。
-
NOTICE:说明文件。