1.Tomcat简介
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个servelet容器,按照Sun microsystems提供的技术规范开发,Tomcat 8实现了对servlet 3.1和Javaserver page 2.3(JSP)的支持,并提供了作为web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat附加组件等。
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
Tomcat和Nginx、Apache(httpd)、lighttpd等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Server和JSP容器,独立的Server容器是Tomcat的默认模式,不过Tomcat处理静态HTML的能力不如Nginx/Apache服务器。其他JAVA容器还有resin、weblogic、websphere等。
2.Servlet简介
Java提供的用于开发Web服务器应用程序的一个组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容。
Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类。
3.JSP简介
servlet的扩展,可以认为JSP = HTML + Java代码 + JSP标签,Servlet获取请求数据和处理数据非常方便,但是向页面输出并显示数据(html标签)非常麻烦,毫无格式。jsp显示数据非常方便,像html格式一样,但是封装数据和处理数据比较麻烦。
1.配置JDK环境
(1)JDK简介
java语言的软件开发工具包其中基本组件包括
javac:编译器,将源程序转成字节码。
jar:打包工具,将相关的类文件打包成一个文件。
javadoc:文档生成器,从源码注释中提取文档。
jdb:debugger,查错工具。
java:运行编译后的java程序(.class后缀的)。
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole:Java进行系统调试和监控的工具。
xtcheck:一个检测jar包冲突的工具。
apt:注释处理工具。
jhat:java堆分析工具。
jstack:栈跟踪程序。
jstat:JVM检测统计工具。
jstatd:jstat守护进程。
jinfo:获取正在运行或崩溃的java程序配置信息。
jmap:获取java进程内存映射信息。
idlj:idl-to-java编译器,将IDL语言转化为java文件。
policytool:一个GUI的策略稳健和管理工具。
jrunscript:命令行脚本运行。
(2)配置JDK环境
下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html(需要点介绍协议,下载jdk8)
[root@localhost ~]# tar -zxf jdk-8u201-linux-x64.tar.gz -C /usr/local/
[root@localhost ~]# ls /usr/local/
bin etc games include jdk1.8.0_201 lib lib64 libexec sbin share src
[root@localhost ~]# vim /etc/profile
末尾追加内容:
export JAVA_HOME=/usr/local/jdk1.8.0_201
export JRE_HOME=/usr/local/jdk1.8.0_201/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
或者
[root@localhost ~]# yum -y install java
[root@localhost ~]# java -version
openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)
2.部署tomcat
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.64/bin/apache-tomcat-8.5.64.tar.gz
[root@localhost ~]# tar zxf apache-tomcat-8.5.64.tar.gz -C /usr/local/
3.启动Tomcat
[root@localhost ~]# /usr/local/apache-tomcat-8.5.64/bin/startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-8.5.64
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.64
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.64/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/apache-tomcat-8.5.64/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.64/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
4.查看端口
[root@localhost ~]# netstat -anput | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 22899/java
5.查看进程
[root@localhost ~]# ps -ef | grep tomcat
root 48233 1 4 09:57 pts/0 00:00:02 /usr/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-8.5.64/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/apache-tomcat-8.5.64/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.64/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apache-tomcat-8.5.64 -Dcatalina.home=/usr/local/apache-tomcat-8.5.64 -Djava.io.tmpdir=/usr/local/apache-tomcat-8.5.64/temp org.apache.catalina.startup.Bootstrap start
root 49620 1511 0 09:58 pts/0 00:00:00 grep --color=auto tomcat
6.查看日志
[root@localhost ~]# tail -1 /usr/local/apache-tomcat-8.5.64/logs/catalina.out
05-Apr-2021 09:57:31.854 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 1449 ms
7.本机访问测试
[root@localhost ~]# curl -I 127.0.0.1:8080
HTTP/1.1 200
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 05 Apr 2021 02:01:36 GMT
8.tomcat目录介绍
(1)总目录
[root@localhost ~]# cd /usr/local/apache-tomcat-8.5.64/
[root@localhost apache-tomcat-8.5.64]# tree -L 1
.
├── bin #启动、关闭Tomcat或其他功能的脚本(.bat和.sh)
├── BUILDING.txt
├── conf #配置Tomcat的XML及DTD文件
├── CONTRIBUTING.md
├── lib #存放web应用能访问的JAR包
├── LICENSE
├── logs #Catalina和其他web应用程序的日志文件
├── NOTICE
├── README.md
├── RELEASE-NOTES
├── RUNNING.txt
├── temp #临时文件
├── webapps #Web应用程序根目录
└── work #产生有JSP编译出的Servlet的.java和.class文件
7 directories, 7 files
(2)webapps目录
[root@localhost apache-tomcat-8.5.64]# cd webapps/
[root@localhost webapps]# ll
总用量 4
drwxr-x--- 15 root root 4096 3月 19 10:46 docs #tomcat帮助文档
drwxr-x--- 7 root root 99 3月 19 10:46 examples #web应用
drwxr-x--- 6 root root 79 3月 19 10:46 host-manager #主机管理
drwxr-x--- 6 root root 114 3月 19 10:46 manager #管理
drwxr-x--- 3 root root 223 3月 19 10:46 ROOT #默认网站根目录
(3)bin目录
[root@localhost webapps]# cd ../bin/
[root@localhost bin]# ls
bootstrap.jar configtest.sh startup.sh
catalina.bat daemon.sh tomcat-juli.jar
catalina.sh digest.bat tomcat-native.tar.gz
catalina-tasks.xml digest.sh tool-wrapper.bat
ciphers.bat setclasspath.bat tool-wrapper.sh
ciphers.sh setclasspath.sh version.bat
commons-daemon.jar shutdown.bat version.sh
commons-daemon-native.tar.gz shutdown.sh
configtest.bat startup.bat
脚本 | 作用 |
---|---|
startup.sh | 开启tomcat脚本 |
shutdown.sh | 关闭tomcat脚本 |
catalina.sh | 核心管理脚本,以后jvm优化参数及相关配置,修改tomcat启动参数 |
9.启动和关闭tomcat
脚本方式:
/usr/local/apache-tomcat-8.5.64/bin/startup.sh
/usr/local/apache-tomcat-8.5.64/bin/shutdown.sh
或者
/usr/local/apache-tomcat-8.5.64/bin/catalina.sh start
/usr/local/apache-tomcat-8.5.64/bin/catalina.sh stop
1.一个主机上运行多个Tomcat
[root@localhost ~]# cp -rp /usr/local/apache-tomcat-8.5.64/ /usr/local/apache-tomcat-8.5.64-2
[root@localhost ~]# vim /usr/local/apache-tomcat-8.5.64-2/conf/server.xml
修改实例停止端口原来是8005 这个改成8006
<Server port="8006" shutdown="SHUTDOWN">
修改web服务器端口原来是8080/8443 改成8081/8444
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8444" />
此项是被禁用的,如果启用则修改连接器端口原来为8009/8443 改成8010/8444
<!--
<Connector protocol="AJP/1.3"
address="::1"
port="8009"
redirectPort="8443" />
-->
2.启动第二个实例
[root@localhost ~]# /usr/local/apache-tomcat-8.5.64-2/bin/startup.sh
Using CATALINA_BASE: /usr/local/apache-tomcat-8.5.64-2
Using CATALINA_HOME: /usr/local/apache-tomcat-8.5.64-2
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.5.64-2/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/apache-tomcat-8.5.64-2/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.64-2/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
3.查看端口
[root@localhost ~]# ss -anpult | grep java
tcp LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:* users:(("java",pid=48233,fd=65))
tcp LISTEN 0 1 [::ffff:127.0.0.1]:8006 [::]:* users:(("java",pid=86950,fd=66))
tcp LISTEN 0 100 [::]:8080 [::]:* users:(("java",pid=48233,fd=54))
tcp LISTEN 0 100 [::]:8081 [::]:* users:(("java",pid=86950,fd=54))
4.查看进程
[root@localhost ~]# ps -ef | grep tomcat
root 48233 1 0 09:57 pts/0 00:00:06 /usr/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-8.5.64/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/apache-tomcat-8.5.64/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.64/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apache-tomcat-8.5.64 -Dcatalina.home=/usr/local/apache-tomcat-8.5.64 -Djava.io.tmpdir=/usr/local/apache-tomcat-8.5.64/temp org.apache.catalina.startup.Bootstrap start
root 86950 1 4 10:22 pts/0 00:00:03 /usr/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat-8.5.64-2/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/apache-tomcat-8.5.64-2/bin/bootstrap.jar:/usr/local/apache-tomcat-8.5.64-2/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/apache-tomcat-8.5.64-2 -Dcatalina.home=/usr/local/apache-tomcat-8.5.64-2 -Djava.io.tmpdir=/usr/local/apache-tomcat-8.5.64-2/temp org.apache.catalina.startup.Bootstrap start
root 88467 1511 0 10:23 pts/0 00:00:00 grep --color=auto tomcat
5.本机访问测试
[root@localhost ~]# curl -I 127.0.0.1:8081
HTTP/1.1 200
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 05 Apr 2021 02:25:33 GMT