1.

安装JDK

注意:安装之前需要查看下系统是否安装了openjdk,如果安装了openjdk,请先卸载,否则安装不了oracle官方的jdk

2.

[root@xuegod13 opt]# ls
apache-tomcat-8.5.75.tar.gz jdk-8u321-linux-x64.tar.gz mysql-connector-java-8.0.28.tar.gz
[root@xuegod13 opt]# tar xf jdk-8u321-linux-x64.tar.gz -C /usr/local/
[root@xuegod13 opt]# vim /etc/profile
[root@xuegod13 opt]# . /etc/profile
[root@xuegod13 opt]# java -version
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)

3.

添加相关配置变量

vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_321
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jar/tools.jar:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

4.

tomcat安装

解压后直接就可以用了

[root@xuegod13 opt]# tar xf apache-tomcat-8.5.75.tar.gz -C /usr/local/
[root@xuegod13 opt]# ls /usr/local/
apache-tomcat-8.5.75 bin etc games include jdk1.8.0_321 lib lib64 libexec sbin share src
[root@xuegod13 opt]# cd /usr/local/
[root@xuegod13 local]# mv apache-tomcat-8.5.75/ tomcat_8.5/
[root@xuegod13 local]# ls
bin etc games include jdk1.8.0_321 lib lib64 libexec sbin share src tomcat_8.5
[root@xuegod13 local]# cd tomcat_8.5/
[root@xuegod13 tomcat_8.5]# ls
bin conf lib logs README.md RUNNING.txt webapps
BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work
[root@xuegod13 tomcat_8.5]# cd bin/

查看Tomcat版本

[root@xuegod13 bin]# ./catalina.sh version
Using CATALINA_BASE: /usr/local/tomcat_8.5
Using CATALINA_HOME: /usr/local/tomcat_8.5
Using CATALINA_TMPDIR: /usr/local/tomcat_8.5/temp
Using JRE_HOME: /usr/local/jdk1.8.0_321
Using CLASSPATH: /usr/local/tomcat_8.5/bin/bootstrap.jar:/usr/local/tomcat_8.5/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Server version: Apache Tomcat/8.5.75
Server built: Jan 17 2022 22:07:47 UTC
Server number: 8.5.75.0
OS Name: Linux
OS Version: 3.10.0-957.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_321-b07
JVM Vendor: Oracle Corporation

5.

创建tomcat启动脚本

[root@xuegod13 ~]# vim /etc/init.d/tomcat 
#!/bin/bash
#
# tomcat startup script for the Tomcat server
#
# chkconfig: 345 80 20
# description: start the tomcat deamon
#
# Source function library
JAVA_HOME=/usr/local/jdk1.8.0_321
export JAVA_HOME
CATALANA_HOME=/usr/local/tomcat_8.5
export CATALANA_HOME
case "$1" in
start)
echo "Starting Tomcat..."
$CATALANA_HOME/bin/startup.sh
;;
stop)
echo "Stopping Tomcat..."
$CATALANA_HOME/bin/shutdown.sh
;;
restart)
echo "Stopping Tomcat..."
$CATALANA_HOME/bin/shutdown.sh
sleep 2
echo
echo "Starting Tomcat..."
$CATALANA_HOME/bin/startup.sh
;;
*)
echo "Usage:$prog{start|stop|restart}"
;;
esac
exit 0
[root@xuegod13 ~]# chmod +x /etc/init.d/tomcat

6.

添加到开机自启动项

[root@xuegod13 init.d]# chkconfig --add tomcat 
[root@xuegod13 init.d]# chkconfig tomcat on
[root@xuegod13 init.d]# chkconfig --list tomcat

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。

要列出 systemd 服务,请执行 'systemctl list-unit-files'
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'

tomcat 0:关 1:关 2:开 3:开 4:开 5:开 6:关

这里要注意的是:实际环境中,start 和 stop不常用 ,常用的是重启tomcat。tomcat自带的脚本中,startup.sh是好使的,但是shutdown.sh好多时候是关不掉tomcat,生产环境直接用kill杀进程的方法关闭tomcat。

7.

tomcat主配置文件是主目录下conf目录中的server.xml,端口、路径都是在它里面设置的。

context.xml这个是数据源配置文件,数据库连接账号密码都是在里面配置的

这两个文件是工作中最常用的

[root@xuegod13 conf]# ls
Catalina catalina.policy catalina.properties context.xml jaspic-providers.xml jaspic-providers.xsd logging.properties server.xml tomcat-users.xml tomcat-users.xsd web.xml

8.

搭建基于域名的虚拟主机

在server.xml文件是,跳转到最后,在最后一个</Host>标签后面插入如下行

<Host name="www.xuegod13.com" appBase="/var/www/html">
<Context path="" docBase="/var/www/html/web1" />
</Host>
<Host name="www.xuegod13.cn" appBase="/var/www/html">
<Context path="" docBase="/var/www/html/web2" />
</Host>

创建虚拟主机测试环境

[root@xuegod13 conf]# mkdir -p /var/www/html/{web1,web2}
[root@xuegod13 conf]# echo xuegod13.com >/var/www/html/web1/index.html
[root@xuegod13 conf]# echo xuegod13.cn >/var/www/html/web2/index.html

最后打开一台linux主机做测试。

[root@xuegod63 ~]# curl www.xuegod13.com:8080
xuegod13.com
[root@xuegod63 ~]# curl www.xuegod13.cn:8080
xuegod13.cn

注:需要先在测试机(xuegod63)的hosts文件做好映射关系内容,如下

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.31.13 www.xuegod13.com
192.168.31.13 www.xuegod13.cn

9.

安装tomcat-Native

注意:这个包在tomcat8的bin 目录已经提供

先安装依赖包

[root@xuegod13 ~]# yum -y install apr-devel gcc gcc-c++ openssl-devel openssl

解压编译安装

[root@xuegod13 ~]# cd /usr/local/tomcat_8.5/
[root@xuegod13 tomcat_8.5]# ls
bin CONTRIBUTING.md logs RELEASE-NOTES webapps
BUILDING.txt lib NOTICE RUNNING.txt work
conf LICENSE README.md temp
[root@xuegod13 tomcat_8.5]# cd bin/
[root@xuegod13 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
[root@xuegod13 bin]# cp tomcat-native.tar.gz ../../
[root@xuegod13 bin]# cd ../../
[root@xuegod13 local]# ls
bin games jdk1.8.0_321 lib64 sbin src tomcat-native.tar.gz
etc include lib libexec share tomcat_8.5
[root@xuegod13 local]# tar xf tomcat-native.tar.gz -C /usr/local/src/
[root@xuegod13 local]# cd /usr/local/src/
[root@xuegod13 src]# ls
tomcat-native-1.2.31-src
[root@xuegod13 src]# cd tomcat-native-1.2.31-src/native/
[root@xuegod13 native]# ls
build configure Makefile.in srclib
buildconf configure.in NMAKEmakefile tcnative.dsp
build.conf include NMAKEmakefile.inc tcnative.spec
BUILDING libtcnative.dsp NOTICE.bin.win
build-outputs.mk libtcnative.dsw os
config.layout LICENSE.bin.win src
[root@xuegod13 native]# ./configure --with-apr=/usr/ --with-java-home=/usr/local/jdk1.8.0_321/ --with-ssl
#内容省略
[root@xuegod13 native]# make -j 4 && make install
#内容省略,但要注意输出最后的一部分内容,如下
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the -LLIBDIR
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
#注意,需要做的就是,把/usr/local/apr/lib加到/etc/ld.so.conf中去,还有加一些变量加到环境变量里去
[root@xuegod13 native]# vim /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/apr/lib
[root@xuegod13 native]# ldconfig #使生效
[root@xuegod13 native]# vim /etc/profile.d/jdk8.sh
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
[root@xuegod13 native]# . /etc/profile.d/jdk8.sh

修改成apr模式

[root@xuegod13 native]# cd /usr/local/tomcat_8.5/conf/
[root@xuegod13 conf]# ls
Catalina context.xml logging.properties tomcat-users.xsd
catalina.policy jaspic-providers.xml server.xml web.xml
catalina.properties jaspic-providers.xsd tomcat-users.xml
[root@xuegod13 conf]# vim server.xml
#修改69行
protocol="HTTP/1.1"
改为:
protocol="org.apache.coyote.http11.Http11AprProtocol"
[root@xuegod13 conf]# cd /usr/local/tomcat_8.5/bin/
[root@xuegod13 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
[root@xuegod13 bin]# vim catalina.sh
#找到JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"
#在下面加个启动命令
JAVA_OPTS="$JAVA_OPTS -Djava.library.path=/usr/local/apr/lib"
[root@xuegod13 bin]# /etc/init.d/tomcat stop
Stopping Tomcat...
Using CATALINA_BASE: /usr/local/tomcat_8.5
Using CATALINA_HOME: /usr/local/tomcat_8.5
Using CATALINA_TMPDIR: /usr/local/tomcat_8.5/temp
Using JRE_HOME: /usr/local/jdk1.8.0_321
Using CLASSPATH: /usr/local/tomcat_8.5/bin/bootstrap.jar:/usr/local/tomcat_8.5/bin/tomcat-juli.jar
Using CATALINA_OPTS:
[root@xuegod13 bin]# !ps
ps aux|grep tomcat
root 11416 0.0 0.0 112728 992 pts/0 S+ 13:11 0:00 grep --color=auto tomcat
[root@xuegod13 bin]# /etc/init.d/tomcat start
Starting Tomcat...
Using CATALINA_BASE: /usr/local/tomcat_8.5
Using CATALINA_HOME: /usr/local/tomcat_8.5
Using CATALINA_TMPDIR: /usr/local/tomcat_8.5/temp
Using JRE_HOME: /usr/local/jdk1.8.0_321
Using CLASSPATH: /usr/local/tomcat_8.5/bin/bootstrap.jar:/usr/local/tomcat_8.5/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@xuegod13 bin]# ps aux|grep tomcat
root 11432 88.6 9.2 3829100 92024 pts/0 Sl 13:11 0:05 /usr/local/jdk1.8.0_321/bin/java -Djava.util.logging.config.file=/usr/local/tomcat_8.5/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Djava.library.path=/usr/local/apr/lib -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat_8.5/bin/bootstrap.jar:/usr/local/tomcat_8.5/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat_8.5 -Dcatalina.home=/usr/local/tomcat_8.5 -Djava.io.tmpdir=/usr/local/tomcat_8.5/temp org.apache.catalina.startup.Bootstrap start
root 11465 0.0 0.0 112728 988 pts/0 S+ 13:11 0:00 grep --color=auto tomcat
#显示了上面的信息,说明已经启动起来了

查看启动日志

[root@xuegod13 bin]# pwd
/usr/local/tomcat_8.5/bin
[root@xuegod13 tomcat_8.5]# cd /usr/local/tomcat_8.5/logs/
[root@xuegod13 logs]# ls
catalina.2022-02-11.log catalina.out host-manager.2022-02-12.log localhost.2022-02-12.log localhost_access_log.2022-02-12.txt manager.2022-02-12.log
catalina.2022-02-12.log host-manager.2022-02-11.log localhost.2022-02-11.log localhost_access_log.2022-02-11.txt manager.2022-02-11.log
#catalina.out就是启动日志
[root@xuegod13 logs]# cat catalina.out |grep Native
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.net.PlainSocketImpl.socketBind(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

输出上面信息表示Tomcat-Native已经加载了

9.

部署MySQL-Connector-Java 使用jsp连接MySQL

先装数据库

[root@xuegod13 ~]# yum -y install mariadb mariadb-server
#输出内容略
[root@xuegod13 ~]# systemctl start mariadb.service

创建测试库,插入数据

[root@xuegod13 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database tomcat
-> ;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> use tomcat;
Database changed
MariaDB [tomcat]> create table tt(id int,name varchar(128));
Query OK, 0 rows affected (0.00 sec)

MariaDB [tomcat]> insert into tt values(1,'aaa');
Query OK, 1 row affected (0.00 sec)

MariaDB [tomcat]> insert into tt values(2,'bbb');
Query OK, 1 row affected (0.00 sec)

MariaDB [tomcat]> grant all on tomcat.* to tomcat@localhost identified by '123456';
Query OK, 0 rows affected (0.00 sec)

MariaDB [tomcat]> \q
Bye

安装使用mysql-connector:复制jar包到tomcat的lib目录下

[root@xuegod13 ~]# cd /opt/
[root@xuegod13 opt]# ls
apache-tomcat-8.5.75.tar.gz jdk-8u321-linux-x64.tar.gz mysql-connector-java-8.0.28.tar.gz
[root@xuegod13 opt]# tar -xf mysql-connector-java-8.0.28.tar.gz -C /usr/local/src/
[root@xuegod13 opt]# cd /usr/local/src/
[root@xuegod13 src]# ls
mysql-connector-java-8.0.28 tomcat-native-1.2.31-src
[root@xuegod13 src]# cd mysql-connector-java-8.0.28/
[root@xuegod13 mysql-connector-java-8.0.28]# ls
build.xml CHANGES INFO_BIN INFO_SRC LICENSE mysql-connector-java-8.0.28.jar README src
[root@xuegod13 mysql-connector-java-8.0.28]# cp mysql-connector-java-8.0.28.jar /usr/local/tomcat_8.5/lib/
[root@xuegod13 mysql-connector-java-8.0.28]# /etc/init.d/tomcat restart
Stopping Tomcat...
Using CATALINA_BASE: /usr/local/tomcat_8.5
Using CATALINA_HOME: /usr/local/tomcat_8.5
Using CATALINA_TMPDIR: /usr/local/tomcat_8.5/temp
Using JRE_HOME: /usr/local/jdk1.8.0_321
Using CLASSPATH: /usr/local/tomcat_8.5/bin/bootstrap.jar:/usr/local/tomcat_8.5/bin/tomcat-juli.jar
Using CATALINA_OPTS:

Starting Tomcat...
Using CATALINA_BASE: /usr/local/tomcat_8.5
Using CATALINA_HOME: /usr/local/tomcat_8.5
Using CATALINA_TMPDIR: /usr/local/tomcat_8.5/temp
Using JRE_HOME: /usr/local/jdk1.8.0_321
Using CLASSPATH: /usr/local/tomcat_8.5/bin/bootstrap.jar:/usr/local/tomcat_8.5/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@xuegod13 mysql-connector-java-8.0.28]# ps -ef|grep tomcat
root 11901 1 99 13:33 pts/0 00:00:13 /usr/local/jdk1.8.0_321/bin/java -Djava.util.logging.config.file=/usr/local/tomcat_8.5/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Djava.library.path=/usr/local/apr/lib -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat_8.5/bin/bootstrap.jar:/usr/local/tomcat_8.5/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat_8.5 -Dcatalina.home=/usr/local/tomcat_8.5 -Djava.io.tmpdir=/usr/local/tomcat_8.5/temp org.apache.catalina.startup.Bootstrap start
root 11935 6703 0 13:34 pts/0 00:00:00 grep --color=auto tomcat

10.测试

建立测试页面

[root@xuegod13 ~]# cd /usr/local/tomcat_8.5/webapps/
[root@xuegod13 webapps]# cd ROOT
[root@xuegod13 ROOT]# ls
asf-logo-wide.svg bg-nav.png index.jsp tomcat.svg
bg-button.png bg-upper.png RELEASE-NOTES.txt WEB-INF
bg-middle.png favicon.ico tomcat.css
[root@xuegod13 ROOT]# vim mysql.jsp
<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%
Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
String url="jdbc:mysql://localhost/tomcat?user=tomcat&password=123456&useUnicode=true&characterEncoding=utf-8";
Connection conn=DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from tt";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){%>
step:<%=rs.getString(1)%>
context:<%=rs.getString(2)%><br><br>
<%}%>
<%out.print("Congratulations!!! JSP connect MYSQL IS OK!!");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>


成功!

2-26 实现jsp通过tomcat连接mysql_java