跳至主要內容
Jetty 快速入门

Jetty 快速入门

Jetty 简介

jetty 是什么?

jetty 是轻量级的 web 服务器和 servlet 引擎。

它的最大特点是:可以很方便的作为嵌入式服务器

它是 eclipse 的一个开源项目。不用怀疑,就是你常用的那个 eclipse。

它是使用 Java 开发的,所以天然对 Java 支持良好。

官方网址


钝悟...大约 25 分钟JavaJavaEE服务器JavaJavaWeb服务器Jetty
Tomcat 快速入门

Tomcat 快速入门

🎁 版本说明

当前最新版本:Tomcat 8.5.24

环境要求:JDK7+

1. Tomcat 简介

1.1. Tomcat 是什么

Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为 Web 服务器的一些特有功能,如 Tomcat 管理和控制平台、安全域管理和 Tomcat 阀等。

由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,Apache HTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTP web server 不是捆绑在一起的。Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。


钝悟...大约 30 分钟JavaJavaEE服务器TomcatJavaJavaWeb服务器Tomcat
Tomcat连接器

Tomcat 连接器

1. NioEndpoint 组件

Tomcat 的 NioEndPoint 组件利用 Java NIO 实现了 I/O 多路复用模型。

img
img

NioEndPoint 子组件功能简介:


钝悟...大约 27 分钟JavaJavaEE服务器TomcatJavaJavaWeb服务器Tomcat
Tomcat容器

Tomcat 容器

Tomcat 实现热部署和热加载

  • 热加载的实现方式是 Web 容器启动一个后台线程,定期检测类文件的变化,如果有变化,就重新加载类,在这个过程中不会清空 Session ,一般用在开发环境。
  • 热部署原理类似,也是由后台线程定时检测 Web 应用的变化,但它会重新加载整个 Web 应用。这种方式会清空 Session,比热加载更加干净、彻底,一般用在生产环境。

Tomcat 通过开启后台线程,使得各个层次的容器组件都有机会完成一些周期性任务。Tomcat 是基于 ScheduledThreadPoolExecutor 实现周期性任务的:


钝悟...大约 27 分钟JavaJavaEE服务器TomcatJavaJavaWeb服务器Tomcat
Tomcat优化

Tomcat 优化

Tomcat 启动优化

如果 Tomcat 启动比较慢,可以考虑一些优化点

清理 Tomcat

  • 清理不必要的 Web 应用:首先我们要做的是删除掉 webapps 文件夹下不需要的工程,一般是 host-manager、example、doc 等这些默认的工程,可能还有以前添加的但现在用不着的工程,最好把这些全都删除掉。
  • 清理 XML 配置文件:Tomcat 在启动时会解析所有的 XML 配置文件,解析 XML 较为耗时,所以应该尽量保持配置文件的简洁。
  • 清理 JAR 文件:JVM 的类加载器在加载类时,需要查找每一个 JAR 文件,去找到所需要的类。如果删除了不需要的 JAR 文件,查找的速度就会快一些。这里请注意:Web 应用中的 lib 目录下不应该出现 Servlet API 或者 Tomcat 自身的 JAR,这些 JAR 由 Tomcat 负责提供。
  • 清理其他文件:及时清理日志,删除 logs 文件夹下不需要的日志文件。同样还有 work 文件夹下的 catalina 文件夹,它其实是 Tomcat 把 JSP 转换为 Class 文件的工作目录。有时候我们也许会遇到修改了代码,重启了 Tomcat,但是仍没效果,这时候便可以删除掉这个文件夹,Tomcat 下次启动的时候会重新生成。

钝悟...大约 6 分钟JavaJavaEE服务器TomcatJavaJavaWeb服务器Tomcat
Tomcat 和 Jetty

Tomcat 和 Jetty

Web 容器 Tomcat 或 Jetty,作为重要的系统中间件,连接着浏览器和你的 Web 应用,并且支撑着 Web 程序的运行,可以说,弄懂了 Tomcat 和 Jetty 的原理,Java Web 开发对你来说就毫无秘密可言

Web 容器

早期的 Web 应用主要用于浏览新闻等静态页面,HTTP 服务器(比如 Apache、Nginx)向浏览器返回静态 HTML,浏览器负责解析 HTML,将结果呈现给用户。

随着互联网的发展,我们已经不满足于仅仅浏览静态页面,还希望通过一些交互操作,来获取动态结果,因此也就需要一些扩展机制能够让 HTTP 服务器调用服务端程序。


钝悟...大约 2 分钟JavaJavaEE服务器TomcatJavaJavaWeb服务器TomcatJetty
JavaWeb 之 Servlet 指南

JavaWeb 之 Servlet 指南

JavaWeb 简介

Web 应用程序

Web,在英语中 web 即表示网页的意思,它用于表示 Internet 主机上供外界访问的资源。

Web 应用程序是一种可以通过 Web 访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件。

Internet 上供外界访问的 Web 资源分为:

  • 静态 web 资源:指 web 页面中供人们浏览的数据始终是不变。常见静态资源文件:html、css、各种图片类型(jpg、png)
  • 动态 web 资源:指 web 页面中供人们浏览的数据是由程序产生的,不同时间点访问 web 页面看到的内容各不相同。常见动态资源技术:JSP/Servlet、ASP、PHP

钝悟...大约 9 分钟JavaJavaEEJavaWebJavaJavaWebServlet
2