黑马程序员技术交流社区

标题: 【广州校区】+【原创】+Tomcat学习笔记 [打印本页]

作者: jianhong    时间: 2018-5-2 11:35
标题: 【广州校区】+【原创】+Tomcat学习笔记
概述
Tomcat 是一开源的 Java Web 服务器,是当今最流行的基于 Java 的 Web 应用服务器。Tomcat 具有以下特点:
· Apache软件基金会出口
· 开源软件
· 源代码是 Java 写的
由于Tomcat 是使用Java语言实现的,因此 Tomcat 的运行依赖于 Java 运行环境,故运行 Tomcat 前需要正确安装 JRE(Java Runtime Environment)。
安装
可以在 Tomcat 官方网站进行 Tomcat 的下载,目前 Tomcat 的最新开发版本是9.0.x,最新稳定版本8.0.x。在生产环境部署 Tomcat 的话,我们一般使用7.0.x版本。
Tomcat 官方网站:http://tomcat.apache.org/index.html。下载所需的 Tomcat 版本后,对下载文件进行解压,即完成 Tomcat 的安装。
目录结构
Tomat 解压后的目录结构如下:

1:Tomcat 的目录结构
· bin:可执行文件目录
· conf:配置文件目录
· lib:Tomcat的依赖库目录
· logs:日志目录
· temp:临时文件夹
· webapps:默认的应用部署目录
· work:供web应用使用
启动
为了启动 Tomcat,可以先设置 CATALINA_HOME 环境变量。CATALINA_HOME 变量用于指定 Tomcat 目录位置,通过以下方式可以设置这个变量:
$ export CATALINA_HOME="/Users/lihao/Soft/tomcat9"
$ echo $CATALINA_HOME
/Users/lihao/Soft/tomcat9
· 1
· 2
· 3
正如上面所述,bin 目录包含了启动脚本,其中包括 startup.sh,可以通过执行该脚本来启动 Tomcat。
$ ./bin/startup.sh Using CATALINA_BASE:   /Users/lihao/Soft/tomcat9Using CATALINA_HOME:   /Users/lihao/Soft/tomcat9Using CATALINA_TMPDIR: /Users/lihao/Soft/tomcat9/tempUsing JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/HomeUsing CLASSPATH:       /Users/lihao/Soft/tomcat9/bin/bootstrap.jar:/Users/lihao/Soft/tomcat9/bin/tomcat-juli.jar
Tomcat started.为了验证启动是否成功,打开浏览器,输入http://127.0.0.1:8080,可以看到浏览器输出,这说明Tomcat 已成功启动 。
2:Tomcat 浏览器展示
如果需要设置 Tomcat 运行参数,可以通过设置 JAVA_OPTS 参数来实现。例如,
$ export JAVA_OPTS="-server -Xms1024m -Xmx1024m"$ echo $JAVA_OPTS
-server -Xms1024m -Xmx1024m$ ./bin/startup.sh
……Tomcat started.
· 1
· 2
· 3
· 4
· 5
· 6
-Xms 表示 Java 初始化堆的大小,-Xms 与 -Xmx 设成一样的值,避免 JVM 反复重新申请内存,导致性能大起大落。-Xmx表示最大 Java 堆的大小,当应用程序需要的内存超出堆的最大值时 JVM 就会提示内存溢出,并导致应用服务崩溃。上面命令设置 初始化堆为1024M,最大堆为1024M。
server.xml
server.xml 文件是 Tomcat 最重要的服务器配置文件,其文件的结构如下:
3:server.xml的文件结构
通过 server.xml 文件的结构,可以一窥 Tomcat 总体设计的架构。
请求处理流程
Tomcat 处理用户请求的流程图如下:

4:Tomcat 处理用户请求流程
用户发出请求后,Tomcat 的 Connector 负责接收请求,然后将请求交由 Container 处理,Container 处理请求后,最后由 Connector 返回响应结果给用户。
Connector
Connector是 Tomcat 的连接器,Connector的作用是接收用户的网络请求,然后将请求封装给 Container 处理。Tomcat 中默认的连接器是 Coyote。
Connector 默认以 BIO(blocking IO,阻塞式IO)运行。可以通过修改设置 Connector 以其他模式运行。
Connector 包括以下几个常用的参数配置:
· port:监听的端口号
· address:监听的IP地址,对于拥有多个IP地址的服务器,可以通过此配置设定监听的IP地址
· protocol:使用的协议。默认值是HTTP/1.1
· connectionTimeout:客户请求连接的超时时间
· acceptCount:接受的最大请求数,当排队中的请求数量超出此值时,将会拒绝后面的请求
· maxConnections:最大连接数
· minSpareThreads:最小空闲线程数
· maxThreads:最大线程数
Container
Container 的作用是负责处理用户的请求,并把响应结果返回给客户端。
Tomcat 日志
Tomcat 的日志主要包括以下几类:
· 系统运行日志
· 访问日志
· 应用日志
访问日志
可以在server.xml里面对访问日志进行配置:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
访问日志的配置包括,日志文件名和前缀和后缀名称,日志的输出格式,日志的输出目录,等等。
Tomcat 部署
完成 Web 应用的开发后,可以通过将应用文件夹打成 war 包,并将这个 war 包放到 Tomcat 的 webapps 目录的方式,进行 Web 应用的部署。
war 包的命令如下:
cd 【应用文件夹名称】
jar cvf【应用文件夹名称】 .
将会生成一个 war 包。将这个 war 放到 webapps 目录,便可以访问这个 Web 应用


作者: Yin灬Yan    时间: 2018-5-2 11:53
我来占层楼啊  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2