65-Linux-Tomcat应用


资源下载

Tomcat官网

Tomcat 8.5apache官网点击下载

云盘下载(请多多支持官方下载):Tomcat 8.5
在这里插入图片描述

Openjdk官网

云盘下载:Openjdk-8u191
在这里插入图片描述


Tomcat基础简述

Tomcat内部组成
在这里插入图片描述


Tomcat配置文件

文件名说明
server.xml主配置文件
web.xml每个webapp只有“部署”后才能被访问,它的部署方式通常由web.xml进行定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认部署相关的配置
context.xml每个webapp都可以专用的配置文件,它通常由专用的配置文件context.xml来定义,其存放位置为WEB-INF/目录中;此文件为所有的webapps提供默认配置
tomcat-users.xml用户认证的账号和密码文件
catalina.policy当使用-security选项启动tomcat时,用于为tomcat设置安全策略
catalina.propertiesJava属性的定义文件,用于设定类加载器路径,以及一些与JVM调优相关参数
logging.properties日志系统相关的配置。log4j

目录结构

目录说明
bin服务启动、停止等相关
conf配置文件
lib库目录
logs日志目录
webapps应用程序,应用部署目录
workjsp编译后的结果文件

实验内容

#下载jdk
[root@C7-4: ~]# ll /data/jdk-8u191-linux-x64.rpm 

-rw-r--r-- 1 root root 168M Jan 13 20:49 /data/jdk-8u191-linux-x64.rpm


#安装下载的rpm包
[root@C7-4: ~]# yum -y install /data/jdk-8u191-linux-x64.rpm


#查看java版本
[root@C7-4: ~]# java -version

java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)


#查看java相关配置文件
[root@C7-4: ~]# cd /usr/java/
[root@C7-4: /usr/java]# ll

total 0
lrwxrwxrwx 1 root root  16 Jan 14 09:48 default -> /usr/java/latest/
drwxr-xr-x 8 root root 258 Jan 14 09:48 jdk1.8.0_191-amd64/
lrwxrwxrwx 1 root root  28 Jan 14 09:48 latest -> /usr/java/jdk1.8.0_191-amd64/


#添加PATH变量
[root@C7-4: /usr/java]# vim /etc/profile.d/jdk.sh 
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH


#重启jdk.sh文件
[root@C7-4: /usr/java]# source /etc/profile.d/jdk.sh 


#下载Tomcat
[root@C7-4: /usr/java]# ll /usr/local/src/

total 9.9M
-rw-r--r-- 1 root root 9.9M Dec  8 03:42 apache-tomcat-8.5.50.tar.gz


#解压Tomcat压缩包
[root@C7-4: ~]# tar xf /usr/local/src/apache-tomcat-8.5.50.tar.gz -C /usr/local


#创建软连接
[root@C7-4: ~]# cd /usr/local/
[root@C7-4: /usr/local]# ln -sv apache-tomcat-8.5.50/ tomcat
[root@C7-4: /usr/local]# ll

total 0
drwxr-xr-x  9 root root 220 Jan 14 10:02 apache-tomcat-8.5.50/
……….
lrwxrwxrwx  1 root root  20 Jan 14 19:09 tomcat -> apache-tomcat-8.5.50/


#创建java用户
[root@C7-4: ~]# useradd -u 77 -r java


#修改目录属主属组
[root@C7-4: /usr/local]# chown -R java:java tomcat/

[root@C7-4: /usr/local]# cd tomcat/bin/

#查看启动脚本和关闭脚本
[root@C7-4: /usr/local/tomcat/bin]# ll

.........
-rwxr-x--- 1 java java 1.9K Dec  8 03:21 shutdown.sh*
-rwxr-x--- 1 java java 1.9K Dec  8 03:21 startup.sh*
.........

#编写一个html页面
[root@C7-4: ~]# echo "This is dushansao" >> /usr/local/tomcat/webapps/ROOT/index.html

#修改配置文件
#页面尾部添加如下几行
[root@C7-4: ~]# vim /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml

    <welcome-file-list>     
      <welcome-file>index.jsp</welcome-file>
      <welcome-file>index.htm</welcome-file>
      <welcome-file>index.html</welcome-file>
    </welcome-file-list>

在这里插入图片描述

#运行启动脚本
[root@C7-4: ~]# /usr/local/tomcat/bin/startup.sh 

Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.


#查看当前是以谁的身份运行tomcat
#显示结果为 root 身份运行
[root@C7-4: ~]# ps -aux | grep tomcat

root       5194  189  4.7 2996000 88036 pts/0
………………..

#如何使用普通用户运行 tomcat ?
[root@C7-4: ~]# /usr/local/tomcat/bin/shutdown.sh 

[root@C7-4: ~]# su - java -c '/usr/local/tomcat/bin/catalina.sh start'

su: warning: cannot change directory to /home/java: No such file or directory
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

#重新查看当前是以谁的身份运行tomcat
#显示结果为 java 身份运行
[root@C7-4: ~]# ps -aux | grep tomcat

java       5498 37.1  4.7 2996000 87736 ?
……………………..

#访问Tomcat自定义页面
[root@C7-4: ~]# curl 192.168.124.14:8080/index.html
This is dushansao


#访问Tomcat默认页面

在这里插入图片描述


核心组件

Tomcat启动一个Server进程。可以启动多个Server,但一般只启动一个

创建一个Service提供服务。可以创建多个Service,但一般也只创建一个

每个Service中,是Engine和其连接器Connector的关联配置

可以为这个Server提供多个连接器Connector,这些Connector使用了不同的协议,绑定了不同的端口。其作用就是处理来自客户端的不同的连接请求或响应

Service内部还定义了Engine,引擎才是真正的处理请求的入口,其内部定义多个虚拟主机Host

Engine对请求头做了分析,将请求发送给相应的虚拟主机
如果没有匹配,数据就发往Engine上的defaultHost缺省虚拟主机
Engine上的缺省虚拟主机可以修改

Host定义虚拟主机,虚拟主机有name名称,通过名称匹配

Context定义应用程序单独的路径映射和配置


#备份配置文件
[root@C7-4: /usr/local/tomcat/conf]# pwd
/usr/local/tomcat/conf
[root@C7-4: /usr/local/tomcat/conf]# cp server.xml server.xml.backup
[root@C7-4: /usr/local/tomcat/conf]# vim server.xml

跳至文章中心

server.xml 内部有一个 server 的定义,每个 server 中可以定义多个 service, 每个 service 中可以定义多 个 connector 供自己的 engine 使用,每个 engine 中可以定义多个 host, host 为虚拟主机, 可以指定项目 在文件系统同的路径和其他配置信息

配置文件中的 <Server port="8005" shutdown="SHUTDOWN">这是 tomcat 的管理端口,此条配置会让 tomcat 监听在本地的 127.0.0.1:8005 端口,使用 telnet 发送 SHUTDOWN 字符串后,tomcat 会关机。为了安全和规范,建议更改端口,更改 SHUTDOWN 字符串为无规律复杂字符串

#安装相关命令
[root@C7-4: /usr/local/tomcat/conf]# yum -y install telnet


#运行启动脚本
[root@C7-4: /usr/local/tomcat/conf]# su - java -c '/usr/local/tomcat/bin/startup.sh'

su: warning: cannot change directory to /home/java: No such file or directory
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
#查看端口
[root@C7-4: /usr/local/tomcat/conf]# ss -ntl

State       Recv-Q Send-Q                                      Local Address:Port                                                     Peer Address:Port              
LISTEN      0      100                                             127.0.0.1:25                                                                  *:*                  
LISTEN      0      128                                                     *:22                                                                  *:*                  
LISTEN      0      100                                                 [::1]:25                                                               [::]:*                  
LISTEN      0      1                                      [::ffff:127.0.0.1]:8005                                                             [::]:*                  
LISTEN      0      100                                                  [::]:8009                                                             [::]:*                  
LISTEN      0      100                                                  [::]:8080                                                             [::]:*                  
LISTEN      0      128                                                  [::]:22                                                               [::]:*                  


[root@C7-4: /usr/local/tomcat/conf]# telnet 127.0.0.1 8005

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SHUTDOWN
Connection closed by foreign host.

[root@C7-4: /usr/local/tomcat/conf]# ss -ntl

State       Recv-Q Send-Q                                      Local Address:Port                                                     Peer Address:Port              
LISTEN      0      100                                             127.0.0.1:25                                                                  *:*                  
LISTEN      0      128                                                     *:22                                                                  *:*                  
LISTEN      0      100                                                 [::1]:25                                                               [::]:*                  
LISTEN      0      128                                                  [::]:22                                                               [::]:*                  

<GlobalNamingResources>
该配置段可以指定一些全局配置

[root@C7-4: /usr/local/tomcat/conf]# cp tomcat-users.xml tomcat-users.xml.backup

[root@C7-4: /usr/local/tomcat/conf]# vim tomcat-users.xml

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">

<role rolename="manager-gui"/>
<user username="dushansao" password="123456" roles="manager-gui"/>

</tomcat-users> 


#添加192.168 网段
[root@C7-4: ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.\d+\.\d+" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context> 


[root@C7-4: ~]# su - java -c '/usr/local/tomcat/bin/startup.sh'
su: warning: cannot change directory to /home/java: No such file or directory
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.


#访问测试,用户名 dushansao 密码 123456
[root@C7-4: ~]# curl -u dushansao 127.0.0.1:8080/manager/html
Enter host password for user 'dushansao':
<html>
<head>
<style>
……………………


#手动创建一个 java web 项目部署到 tomcat 中
[root@C7-4: ~]# mkdir -pv /usr/local/tomcat/webapps/myapp/{WEB-INF,classes,lib}
mkdir: created directory ‘/usr/local/tomcat/webapps/myapp’
mkdir: created directory ‘/usr/local/tomcat/webapps/myapp/WEB-INF’
mkdir: created directory ‘/usr/local/tomcat/webapps/myapp/classes’
mkdir: created directory ‘/usr/local/tomcat/webapps/myapp/lib’


[root@C7-4: ~]# echo '<h1>myapp for dushansao</h1>' > /usr/local/tomcat/webapps/myapp/index.html


[root@C7-4: ~]# vim /usr/local/tomcat/webapps/myapp/index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>myapp for dushansao</title>                                                                                                                                       
</head>
<body>
<h1> myapp web project in /usr/local/tomcat/webapps/myapp </h1>
<%
out.println("hello jsp");
%>
</body>
</html>
[root@C7-4: ~]# vim /usr/local/tomcat/webapps/myapp/WEB-INF/web.xml

[root@C7-4: ~]# cp -av /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml /usr/local/tomcat/webapps/myapp/WEB-INF

[root@C7-4: ~]# chown -R java:java /usr/local/tomcat

[root@C7-4: ~]# su - java -c '/usr/local/tomcat/bin/startup.sh'
su: warning: cannot change directory to /home/java: No such file or directory
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.



[root@C7-4: ~]# curl 127.0.0.1:8080/myapp
[root@C7-4: ~]# curl 127.0.0.1:8080/myapp/index.html

<h1>myapp for dushansao</h1>


[root@C7-4: ~]# curl 127.0.0.1:8080/myapp/index.jsp

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>myapp for dushansao</title>
</head>
<body>
<h1> myapp web project in /usr/local/tomcat/webapps/myapp </h1>
hello jsp

</body>
</html>
#配置中还可以使用 context 选项
[root@C7-4: ~]# cp -av /usr/local/tomcat/webapps/myapp /data/myappv1
‘/usr/local/tomcat/webapps/myapp’ -> ‘/data/myapp’
……………………
‘/usr/local/tomcat/webapps/myapp/index.jsp’ -> ‘/data/myapp/index.jsp’

[root@C7-4: ~]# ll /data/
total 168M
-rw-r--r-- 1 root root 168M Jan 13 20:49 jdk-8u191-linux-x64.rpm
drwxr-xr-x 5 root root   82 Jan 17 21:29 myappv1/


[root@C7-4: ~]# vim /data/myappv1/index.html 

<h1>myapp of dushansao page under data-myappv1</h1>


[root@C7-4: ~]# vim /data/myappv1/index.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>myapp of dushansao page under data-myappv1</title>
</head>
<body>
<h1> myapp web project in /data/myappv1 </h1>                                                
<%
out.println("hello jsp");
%>
</body>
</html>


[root@C7-4: ~]# vim /etc/hosts
#添加最后一行
  127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
  ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
 127.0.0.1 www.dushan.com 


[root@C7-4: ~]# cd /data/
[root@C7-4: ~]# ln -s myappv1 test
[root@C7-4: ~]# chown -R java:java /data
[root@C7-4: ~]# cp -a /usr/local/tomcat/webapps /data/
[root@C7-4: ~]# ll /data/

total 168M
-rw-r--r-- 1 java java 1.4K Jan 14 15:34 ag-install.sh
-rw-r--r-- 1 java java 168M Jan 13 20:49 jdk-8u191-linux-x64.rpm
drwxr-xr-x 5 java java   82 Jan 18 08:44 myappv1/
lrwxrwxrwx 1 java java   13 Jan 18 08:50 test -> myappv1/
drwxr-x--- 8 java java   94 Jan 17 21:25 webapps/


[root@C7-4: ~]# vim /usr/local/tomcat/conf/server.xml
#添加一下内容

      </Host>

      <Host name="www.dushan.com" appBase="/data/webapps" unpackWARs="true" autoDeploy="true" >
          <Context path="/test" docBase="/data/test" reloadable="" />

      </Host>

图示
在这里插入图片描述

[root@C7-4: ~]# su - java -c '/usr/local/tomcat/bin/shutdown.sh'

[root@C7-4: ~]# ss -ntl

State      Recv-Q Send-Q      Local Address:Port                     Peer Address:Port              
LISTEN     0      100             127.0.0.1:25                                  *:*                  
LISTEN     0      128                     *:22                                  *:*                  
LISTEN     0      100                 [::1]:25                               [::]:*                  
LISTEN     0      128                  [::]:22                               [::]:*              


[root@C7-4: ~]# su - java -c '/usr/local/tomcat/bin/startup.sh'
su: warning: cannot change directory to /home/java: No such file or directory
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

[root@C7-4: ~]# ss -ntl

State      Recv-Q Send-Q      Local Address:Port                     Peer Address:Port              
LISTEN     0      100             127.0.0.1:25                                  *:*                  
LISTEN     0      128                     *:22                                  *:*                  
LISTEN     0      100                 [::1]:25                               [::]:*                  
LISTEN     0      1      [::ffff:127.0.0.1]:8005                             [::]:*                  
LISTEN     0      100                  [::]:8009                             [::]:*                  
LISTEN     0      100                  [::]:8080                             [::]:*                  
LISTEN     0      128                  [::]:22                               [::]:*                  


[root@C7-4: ~]# curl www.dushan.com:8080/test/

<h1>myapp of dushansao page under data-myappv1 </h1>


[root@C7-4: ~]# curl www.dushan.com:8080/test/index.jsp

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>myapp of dushansao</title>
</head>
<body>
<h1> myapp web project in /data/myappv1 </h1>
hello jsp

</body>
</html>



#查看 work 路径,证实真实的项目是以虚拟主机名和访问名进行区分的
[root@C7-4: ~]# ll /usr/local/tomcat/work/Catalina/
total 0
drwxr-x--- 8 java java  94 Jan 17 21:25 localhost/
drwxr-x--- 9 java java 106 Feb  2 10:58 www.dushan.com/

[root@C7-4: ~]# ll /usr/local/tomcat/work/Catalina/www.dushan.com/
total 0
drwxr-x--- 2 java java  6 Feb  2 10:58 docs/
drwxr-x--- 2 java java  6 Feb  2 10:58 examples/
drwxr-x--- 2 java java  6 Feb  2 10:58 host-manager/
drwxr-x--- 2 java java  6 Feb  2 10:58 manager/
drwxr-x--- 2 java java  6 Feb  2 10:58 myapp/
drwxr-x--- 2 java java  6 Feb  2 10:58 ROOT/
drwxr-x--- 3 java java 17 Feb  2 11:37 test/

Tomcat的web.xml配置

[root@C7-4: ~]# vim /usr/local/tomcat/conf/web.xml

...…………..#由下方的序列号得知该文件超过四千行,省略不写
4722         <welcome-file>index.htm</welcome-file>
4723         <welcome-file>index.jsp</welcome-file>
4724     </welcome-file-list>
4725 
4726 </web-app>   

通过上面的 web.xml 配置文件可以得知,有 servlet 和 servlet-mapping, session-config, mime-mapping, welcome-file-list 配置端。 其中 servlet 和 servlet-mapping 定了以 java 后台请求的入口, session-config 定义了 session 会话的配置, welcome-file-list 定义了 默认主页的访问顺序,根据默认配置,index.html 高于 index.htm 高于 index.jsp


跳至文章尾部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值