Tomcat详解举例

一、Tomcat是什么?

1、Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

2、Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

3、诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0.27。

二、 Tomcat名称由来

1、Tomcat最初是由Sun的软件架构师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O’Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O’Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)[1]的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计为一只公猫。

2、Tomcat 是由 Apache 软件基金会属下 Jakarta 项目开发的 Servlet 容器,是开发和调试 JSP 程序的首选,按照 Sun Microsystems 提供的技术规范,实现了对 Servlet 和 JavaServer Page 的支持,并提供了作为 Web 服务器的一些特有功能。

3、由于 Tomcat 本身也内含了 HTTP 服务器,因此也可以视作单独的 Web 服务器。但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,Apache HTTP 服务器是用 C 语言实现的 HTTPWeb 服务器;这两个 HTTP web server 不是捆绑在一起的。Apache Tomcat 包含了配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。

4、Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,是使用java语言编写的,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

5、Java Development Kit (JDK)是Sun公司针对Java开发人员发布的免费软件开发工具包(SDK,Software development kit)。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。由于JDK的一部分特性采用商业许可证,而非开源。因此,2006年Sun公司宣布将发布基于GPL协议的开源JDK,使JDK成为自由软件。在去掉了少量闭源特性之后,Sun公司最终促成了GPL协议的OpenJDK的发布。作为java语言的SDK,普通用户并不需要安装JDK来运行java程序,而只需要安装JRE(Java Runtime Environment)。而程序开发者必须安装JDK来编译、调试程序。

三、tomcat默认支持网页格式

一般情况下,tomcat项目的默认页面为html、htm和jsp页面,但是我们的主页往往是动态的。

四、tomcat配置详解

常用配置详解

五、目录结构及作用

Tomcat的目录结构:

1、bin – 包含所有运行tomcat的二进制和脚本文件

2、lib – 包含tomcat使用的所有共享库

3、conf - 包含配置信息,如tomcat绑定的端口等

3、1 server.xml:配置整个服务器信息。例如修改端口号,添加虚拟主机等。

3、2 tomcatusers.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了。

3、3web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!

3、4context.xml:对所有应用的统一配置,通常我们不会去配置它。

4、logs – 包含所有的日志文件。

5、temp – 此目录是tomcat存放的临时文件。

6、webapps – 此目录非常重要,这里存放所有的应用程序war包(项目包).
存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。http://localhost:8080/szm,进入示例项目。其中szm就是项目名,即文件夹的名字。

7、work –
如果应用程序包含jsp文件,那么每个jsp文件会被编译转化为servlet,存放于此,运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下。

8、运行Tomcat时,会用到5个环境变量:
CATALINA_HOME
CATALINA_BASE
CATALINA_TMPDIR
JRE_HOME/JAVA_HOME
CLASSPATH

8.1 在以上列表中,CATALINA_HOME和JAVA_HOME是必要的环境变量。其它的都可以通过CATALINA_HOME来转换,是可选的。

8.2 CATALINA_HOME – 此环境变量是tomcat安装/提取的根目录。所以通过CATALINA_HOME,可以得到bin和lib目录。

8.3 CATALINA_BASE – 如果不指定则是CATALINA_HOME的值。该变量指向的目录里面包括每个运行实例需要使用自己的conf、logs、temp、webapps、work目录。

8.4 一般运行Tomcat的方法是,只设置CATALINA_HOME变量,执行startup.sh脚本,startup.sh会自动转换其它未设置的变量。

在这里插入图片描述

cd /opt/tomcat/apache-tomcat-7.0.47/可以看到tomcat的目录可看到如下:

bin :存放启动和关闭Tomcat脚本文件目录。

conf:存放Tomcat服务配置文件,最重要的是server.xml。

logs:存放日志文件。

lib :仅对所有WEB APP可见,对TOMCAT不可见(使用Shared类加载器加载)。

temp:Tomcat运行时候存放临时文件用的。

webapps:web应用发布目录。

work:Tomcat把各种由jsp生成的servlet文件放在这个目录下。删除后,启动时会自动创建。

六、开启tomcat的命令

进入tomcat家目录,执行 ./bin/startup.sh

cd /opt/tomcat/apache-tomcat-7.0.47/
./bin/startup.sh 

七、关闭tomcat的命令

方法一:安全
 cd /opt/tomcat/apache-tomcat-7.0.47/
 ./bin/shutdown.sh 
方法二:简单粗暴-kill
[root@ localhost ~]# ps -ef |grep java   #查看进程,并定位到pid为33860
root      33860      1  0 15:27 pts/1    00:00:16 /usr/java/jdk1.8.0_20/bin/java -Djava.util.logging.config.file=/opt/tomcat/apache-tomcat-7.0.47/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat/apache-tomcat-7.0.47/endorsed -classpath /opt/tomcat/apache-tomcat-7.0.47/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-7.0.47/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat/apache-tomcat-7.0.47 -Dcatalina.home=/opt/tomcat/apache-tomcat-7.0.47 -Djava.io.tmpdir=/opt/tomcat/apache-tomcat-7.0.47/temp org.apache.catalina.startup.Bootstrap start
root      33948  32125  0 15:58 pts/1    00:00:00 grep --color=auto java

 kill -9  33860		#通过kill,强制结束进程

八、Tomcat 服务默认端口号

默认端口为8080

九、安装Tomcat前准备

# 配置静态IP地址
[root@ localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=10.0.0.47
GATEWAY=10.0.0.254
NETMASK=255.255.255.0
DNS1=223.5.5.5
# 重新启动网络
[root@ localhost ~]# systemctl restart network
# 关闭iptables和SELinux,并测试yum可用
[root@ localhost ~]# systemctl stop firewalld
[root@ localhost ~]# setenforce 0
setenforce: SELinux is disabled
# 我这里配置的是本地yum源
[root@ localhost ~]# cat /etc/yum.repos.d/q.repo 
[q]
name=q
baseurl=file:///mnt
gpgcheck=0

十、上传tocmat和jdk安装包到服务器上

在这里插入图片描述

[root@ localhost ~]# ll
total 146920
-rw-r--r--  1 root root         0 2019-11-29 10:48 10.log.txt
-rw-r--r--  1 root root         0 2019-11-29 10:48 1.log.txt
-rw-r--r--  1 root root         0 2019-11-29 10:48 2.log.txt
-rw-r--r--  1 root root         0 2019-11-29 10:48 3.log.txt
-rw-r--r--  1 root root         0 2019-11-29 10:48 4.log.txt
-rw-r--r--  1 root root         0 2019-11-29 10:48 5.log.txt
-rw-r--r--  1 root root         0 2019-11-29 10:48 6.log.txt
-rw-r--r--  1 root root         0 2019-11-29 10:48 7.log.txt
-rw-r--r--  1 root root         0 2019-11-29 10:48 8.log.txt
-rw-r--r--  1 root root         0 2019-11-29 10:48 9.log.txt
-rw-r--r--  1 root root       272 2019-11-27 19:28 aa.sh
-rw-------. 1 root root      1277 2019-09-17 22:18 anaconda-ks.cfg
-rw-r--r--  1 root root   8234674 2019-08-07 15:54 apache-tomcat-7.0.47.tar.gz
-rw-r--r--  1 root root       179 2019-11-29 10:12 bb.sh
-rw-r--r--  1 root root       128 2019-11-29 10:48 cc.sh
-rw-r--r--  1 root root       135 2019-11-29 13:47 dd.sh
-rw-r--r--  1 root root 142183549 2019-08-07 16:03 jdk-8u20-linux-x64.rpm
-rw-r--r--  1 root root        10 2019-11-27 10:43 test.txt

#   安装jdk环境
[root@ localhost ~]# rpm -ivh jdk-8u20-linux-x64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8.0_20-2000:1.8.0_20-fcs    ################################# [100%]
Unpacking JAR files...
	rt.jar...
	jsse.jar...
	charsets.jar...
	tools.jar...
	localedata.jar...
	jfxrt.jar...
	
# 为jdk配置环境变量,并测试
vim /etc/profile
# 在文件最底部添加如下三行,修改完保存退出
export JAVA_HOME=/usr/java/jdk1.8.0_20
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

#使环境变量生效
source /etc/profile
#查看java的版本
[root@ localhost ~]# java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

十一、为tomcat创建一个安装目录/opt/tomcat

安装tomcat到/opt/tomcat目录下

 mkdir /opt/tomcat/
 #解压到创建好的目录
 tar zxvf apache-tomcat-7.0.47.tar.gz -C /opt/tomcat/
[root@ localhost ~]# cd /opt/tomcat/
[root@ localhost tomcat]# ll
total 0
drwxr-xr-x 9 root root 160 2019-12-01 15:20 apache-tomcat-7.0.47
[root@ localhost tomcat]# ll apache-tomcat-7.0.47/
total 96
drwxr-xr-x 2 root root  4096 2019-12-01 15:20 bin
drwxr-xr-x 2 root root   158 2013-10-18 18:21 conf
drwxr-xr-x 2 root root  4096 2019-12-01 15:20 lib
-rw-r--r-- 1 root root 56812 2013-10-18 18:21 LICENSE
drwxr-xr-x 2 root root     6 2013-10-18 18:10 logs
-rw-r--r-- 1 root root  1192 2013-10-18 18:21 NOTICE
-rw-r--r-- 1 root root  8826 2013-10-18 18:21 RELEASE-NOTES
-rw-r--r-- 1 root root 16262 2013-10-18 18:21 RUNNING.txt
drwxr-xr-x 2 root root    30 2019-12-01 15:20 temp
drwxr-xr-x 7 root root    81 2013-10-18 18:19 webapps
drwxr-xr-x 2 root root     6 2013-10-18 18:10 work

十二、修改tomcat的HTTP访问端口为8090

vim /opt/tomcat/apache-tomcat-7.0.47/conf/server.xml 

在这里插入图片描述

十三、启动tomcat

[root@ localhost tomcat]# /opt/tomcat/apache-tomcat-7.0.47/bin/startup.sh 
Using CATALINA_BASE:   /opt/tomcat/apache-tomcat-7.0.47
Using CATALINA_HOME:   /opt/tomcat/apache-tomcat-7.0.47
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-7.0.47/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_20
Using CLASSPATH:       /opt/tomcat/apache-tomcat-7.0.47/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-7.0.47/bin/tomcat-juli.jar

#查看tomcat进程
[root@ localhost tomcat]# ps aux |grep tomcat
root      33860  3.3  8.6 2269760 86668 pts/1   Sl   15:27   0:08 /usr/java/jdk1.8.0_20/bin/java -Djava.util.logging.config.file=/opt/tomcat/apache-tomcat-7.0.47/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat/apache-tomcat-7.0.47/endorsed -classpath /opt/tomcat/apache-tomcat-7.0.47/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-7.0.47/bin/tomcat-juli.jar -Dcatalina.base=/opt/tomcat/apache-tomcat-7.0.47 -Dcatalina.home=/opt/tomcat/apache-tomcat-7.0.47 -Djava.io.tmpdir=/opt/tomcat/apache-tomcat-7.0.47/temp org.apache.catalina.startup.Bootstrap start
root      33890  0.0  0.0 112652   944 pts/1    S+   15:31   0:00 grep --color=auto tomcat

十四、浏览器测试访问到tomcat测试页面

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值