Tomcat
Tomcat安装启用
可从官网下载
https://tomcat.apache.org/
分为exe版和zip版,即安装版和绿化版,建议安装绿化版
安装非安装版,解压后即可使用,通过Tomcat安装目录下的批处理可执行文件\bin\start.bat
启动服务器,运行之后打开浏览器,在地址栏输入http://localhost:8080
,能显示Tomcat的欢迎界面则说明服务器安装成功。
注:如果 Tomcat 服务器不能启动,可以先打开命令提示符窗口,切换到 Tomcat 安装目录下的 bin 目录,运行 startup.bat,查看服务器控制台窗口输出的错误信息,根据服务器显示的错误信息查找原因,有时是8080端口已被占用,更多的情况是计算机感染病毒所致。(处理方式可自行搜索,很玄学)
Tomcat服务器的目录结构
目录 | 描述 |
---|---|
bin | 包含启动、关闭Tomcat或者其他功能的脚本(.bat文件和.sh文件) |
conf | 包含各种配置文件,包括Tomcat的主要配置文件server.xml,以及为不同的Web应用设置默认值的文件web.xml |
lib | 包含Tomcat中使用的jar文件。(在UNIX平台中,此目录下的任何文件都被加到Tomcat的classpath中) |
logs | 日志文件目录 |
temp | 临时文件 |
webapps | Web应用程序主目录 |
work | Tomcat自动生成,放置Tomcat运行时的临时文件,(比如有JSP编译出的Servlet的.java 和.class文件) |
Tomcat服务器的配置文件
Tomcat服务器的配置文件是conf文件夹下的
sever.xml
文件
结构:
<!--根元素,代表整个服务器-->
<Server> <!--服务器是服务的生存环境;关闭端口8005,关闭指令SHUTDOWN-->
<!--服务器可以包含多个服务,默认服务的名称为Catalina-->
<Service><!--服务,由Engine及相关的一组Connectors构成-->
<!--每个服务由多个Connector和一个Engine容器组成-->
<Connector/><!--客户端与服务器之间的连接,port属性定义端口-->
<Engine><!--引擎,处理Service的所有请求,实现Container接口-->
<host><!--虚拟主机 appBase属性设置应用程序目录-->
<!--虚拟目录,每个Context是一个独立的网站,通过path标识判断走哪个网站-->
<Context/>
</host>
</Engine>
</Service>
</Server>
配置文件元素详解
元素名 | 属性 | 解释 |
---|---|---|
server | port | 指定一个端口,这个端口负责监听关闭Tomcat 的请求 |
shutdown | 指定向端口发送的关闭命令字符串 | |
service | name | 指定service的名字 |
Connector(表示客户端和service之间的连接) | port | 指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求 |
minProcessors | 服务器启动时创建的处理请求的线程数 | |
maxProcessors | 最大可以创建的处理请求的线程数 | |
enableLookups | 如果为true,则可以通过调用 request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为 false 则不进行 DNS查询,而是返回其P地址 | |
redirectPort | 指定服务器正在处理HTTP请求时收到了一个SSL传输请求后重定向的端口号 | |
acceptCount | 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理 | |
connectionTimeout | 指定超时的时间数(以毫秒为单位) | |
Engine(指定service中的请求处理机,接收和处理来自Connector的请求) | defaultHost | 指定默认的处理请求的主机名,它至少与其中的一个 host元素的name属性值是一样的 |
Context(表示一个Web应用程序,通常为WAR文件) | docBase | 应用程序的路径或者是WAR文件存放的路径 |
path | 表示此Web应用程序的URL的前缀,这样请求的URL为http:// localhost;8080/path/**** | |
reloadable | 如果为 true,则Tomcat 会自动检测应用程序的/WEB-INF/lib 和 /WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重启Tomcat 的情况下使应用程序的变化生效,一般在调试阶段设为 true,正式发布后改为 false | |
host(表示一个虚拟主机) | name | 指定主机名 |
appBase | 应用程序基本目录,即存放应用程序的目录 | |
unpackWARs | 如果为true,则Tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序 | |
Logger(表示日志,调试和错误信息) | className | 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口 |
prefix | 指定log文件的前缀 | |
suffix | 指定log文件的后缀 | |
timestamp | 如果为true,则log文件名中要加入时间,如localhost log.2023-07-04.txt | |
Realm(表示存放用户名,密码及role的数据库) | className | 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口 |
Valve(功能与Logger差不多,其prefix和suffix属性解释和 Logger中的一样) | className | 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息 |
directory | 指定 log文件存放的位置 | |
pattern | 有两个值,common 方式记录远程主机名或IP地址、用户名、日期、第一行请求的字符串、HTTP响应代码,发送的字节数。combined 方式比common方式记录的值更多 |
配置文件 server.xml 中的默认设置一般无须修改,其服务器的端口为 8080,主目录为 $TOMCAT_ HOME/webapps/Root
。通过修改属性protocol="HTTP/1.1"的 Connector 元素的 port属性值可以修改Tomcat 服务器的端口号。
<Connector port="要设置的端口号" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
通过修改 Host 元素的appBase 属性值可以更改 Tomcat 服务器默认的应用程序发布目录,该目录下的 Root目录为默认的主目录。
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation = "false" xmlNamespaceAware="false" >
在 server.xml 中还可以配置虚拟主机、用户验证方式、设置单点登录等功能。实际上最常见的操作是建立虚拟路径或直接部署 Web 应用程序。
注意,在修改默认配置前应对server.xml文件进行备份,任何错误设置将导致服务器无法启动。
在config 目录下还有一个配置文件 webxml,用来设置服务器上所有网站(Web 应用程序)的默认值(通用配置项)。文件 tomcat-user.xml 用来设置远程登录 Tomcat 服务器的角色和用户名,admin角色的用户可以使用Admin Web Application 进行系统管理,manager 角色的用户可以使用Manager Web Application 进行应用管理。在 Tomcat 的默认主页(欢迎界面)有这两个 Web 管理程序的登录入口,还有帮助文档、Servlet 和JSP 例程等学习资源的链接入口。
配置文件元素详解 附图:
文章内容来源于书籍:
JSP Web应用程序开发教程 第2版_杨占胜,王鸽,王海峰编著_14358383