整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。
从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。
web server apache tomcat11-01-官方文档入门介绍
web server apache tomcat11-02-setup 启动
web server apache tomcat11-03-deploy 如何部署
web server apache tomcat11-04-manager 如何管理?
web server apache tomcat11-06-Host Manager App -- Text Interface
web server apache tomcat11-07-Realm Configuration
web server apache tomcat11-08-JNDI Resources
web server apache tomcat11-09-JNDI Datasource
web server apache tomcat11-10-Class Loader
...
Server Side Includes (SSI) 是一种在 HTML 页面中放置的指令,在服务器上评估页面时执行。
它们允许您向现有的 HTML 页面添加动态生成的内容,而无需通过 CGI 程序或其他动态技术提供整个页面。
在 Tomcat 中,当您将 Tomcat 用作 HTTP 服务器并且需要 SSI 支持时,可以添加 SSI 支持。通常在开发期间进行这样的操作,当您不想运行诸如 Apache 等网络服务器时。
Tomcat 的 SSI 支持实现了与 Apache 相同的 SSI 指令。有关使用 SSI 指令的信息,请参阅 Apache SSI 介绍。
SSI 支持可作为 servlet 和过滤器提供。您应该使用其中一种来提供 SSI 支持,但不要同时使用两者。
基于 Servlet 的 SSI 支持是使用类 org.apache.catalina.ssi.SSIServlet 实现的。传统上,将此 servlet 映射到 URL 模式 "*.shtml"。
基于过滤器的 SSI 支持是使用类 org.apache.catalina.ssi.SSIFilter 实现的。传统上,将此过滤器映射到 URL 模式 ".shtml",尽管它可以映射到 "",因为它将基于 MIME 类型选择性地启用/禁用 SSI 处理。contentType 初始参数允许您将 SSI 处理应用于 JSP 页面、JavaScript 或任何其他您希望的内容。
默认情况下,Tomcat 中禁用了 SSI 支持。
注意 - SSI 指令可用于执行Tomcat JVM 外部的程序。
要使用 SSI servlet,请从 $CATALINA_BASE/conf/web.xml 中删除围绕 SSI servlet 和 servlet-mapping 配置的 XML 注释。
要使用 SSI 过滤器,请从 $CATALINA_BASE/conf/web.xml 中删除围绕 SSI 过滤器和 filter-mapping 配置的 XML 注释。
只有标记为特权的上下文才能使用 SSI 功能(请参阅 Context 元素的 privileged 属性)。
有几个 servlet init 参数可用于配置 SSI servlet 的行为。
有几个过滤器 init 参数可用于配置 SSI 过滤器的行为。
通过将 SSI 指令嵌入到由 SSI servlet 处理的 HTML 文档中来调用 Server Side Includes。指令采用 HTML 注释的形式。将指令替换为在将页面发送到客户端之前解释它的结果。指令的一般形式为:
指令包括:
有关使用 SSI 指令的更多信息,请参阅 Apache SSI 介绍。
SSI 变量通过 jakarta.servlet.ServletRequest 对象上的请求属性实现,并不限于 SSI servlet。以 "java."、"javax."、"sun" 或 "org.apache.catalina.ssi.SSIMediator." 开头的变量名称为保留变量,不能使用。
SSI servlet 当前实现了以下变量:
(变量名 - 描述)
AUTH_TYPE - 用户的身份验证类型:BASIC、FORM 等。
CONTENT_LENGTH - 从表单传递的数据的长度(以字节或字符数)。
CONTENT_TYPE - 查询数据的 MIME 类型,例如 "text/html"。
DATE_GMT - GMT 中的当前日期和时间。
DATE_LOCAL - 本地时区中的当前日期和时间。
DOCUMENT_NAME
DOCUMENT_URI - 文件的虚拟路径。
GATEWAY_INTERFACE - 服务器使用的通用网关接口的修订版本(如果已启用):"CGI/1.1"。
HTTP_ACCEPT - 客户端可以接受的 MIME 类型列表。
HTTP_ACCEPT_ENCODING - 客户端可以接受的压缩类型列表。
HTTP_ACCEPT_LANGUAGE - 客户端可以接受的语言列表。
HTTP_CONNECTION - 客户端连接管理方式:"Close" 或 "Keep-Alive"。
HTTP_HOST - 客户端请求的网站。
HTTP_REFERER - 客户端链接的文档的 URL。
HTTP_USER_AGENT - 客户端用于发出请求的浏览器。
LAST_MODIFIED - 当前文件的上次修改日期和时间。
PATH_INFO - 传递给 servlet 的额外路径信息。
PATH_TRANSLATED - 变量 PATH_INFO 的翻译版本。
QUERY_STRING - URL 中 "?" 后面的查询字符串。
QUERY_STRING_UNESCAPED - 所有已解码的查询字符串,其中所有 shell 元字符都已使用 "" 转义。
REMOTE_ADDR - 发出请求的用户的远程 IP 地址。
REMOTE_HOST - 发出请求的用户的远程主机名。
REMOTE_PORT - 发出请求的用户的远程 IP 地址的端口号。
REMOTE_USER - 用户的经过身份验证的名称。
REQUEST_METHOD - 发出信息请求的方法:"GET"、"POST" 等。
REQUEST_URI - 客户端最初请求的网页。
SCRIPT_FILENAME - 服务器上当前网页的位置。
SCRIPT_NAME - 网页的名称。
SERVER_ADDR - 服务器的 IP 地址。
SERVER_NAME - 服务器的主机名或 IP 地址。
SERVER_PORT - 服务器接收请求的端口号。
SERVER_PROTOCOL - 服务器使用的协议。例如,"HTTP/1.1"。
SERVER_SOFTWARE - 正在响应客户端请求的服务器软件的名称和版本。
UNIQUE_ID - 用于标识当前会话的令牌(如果已建立会话)。