一.Tomcat简介
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由[Apache](https://baike.baidu.com/item/Apache/6265)、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器[来自百度百科https://baike.baidu.com/item/Tomcat]
Tomcat是免费的,开源的web应用服务器,中小型的JavaEE服务器。
Tomcat简单的说就是一个能运行Java的服务器,底层就是Socket网络通信程序,里面有容器,能跑JSP和Servlet。
二.Tomcat安装和使用
-
安装
在window系统中,下载得到压缩包,只需要解压压缩包就好了。
安装目录最好不要有中文和空格。
-
卸载
直接删除解压后的目录。
-
Tomcat使用
-
启动
进入Tomcat目录下,bin目录下的startup.bat,双击运行即可。
Tomcat启动成功界面如下:
[图片上传失败...(image-9b2474-1649142082769)]
打开浏览器,输入http://localhost:8080,如果能出现Tomcat界面(如下图),则说明Tomcat启动成了。
[图片上传失败...(image-4b94a9-1649142082769)]
-
关闭
正常关闭Tomcat服务器,只要打开Tomcat目录下的bin目录,双击shutdown.bat;或者使用ctrl+c
如果是直接点击startup窗口的X来关闭,不属于正常关闭的。虽然也可以关闭,但是属于强制关闭。
-
-
Tomcat启动可能遇到的问题
前面讲了Tomcat的启动,是比较顺利的,但也不是一定就能顺利启动的,总会有些问题发生。可能遇到以下问题,做个记录:
-
双击startup.bat,黑窗口一闪而过
这种情况是因为Tomcat其实也是JAVA写的,也依赖jdk,因为没有正确的配置JAVA_HOME环境变量导致。
解决方法:正确配置JAVA_HOME环境变量
-
启动报错(大概率是端口问题)
-
可以通过找到占用的端口,并找到对应的进程,直接杀死进程。
在cmd窗口中输入netstat -ano,看看谁占用了8080端口(Tomcat默认端口是8080),然后根据进程号,关闭这个进程
-
也可以通过修改Tomcat的配置,把端口号改掉。
进入Tomcat主目录,打开conf下的server.xml文件,将端口号8080修改成其他的。
Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
一般我们会吧tomcat的默认端口号改为80,80端口是http的默认端口,这样的好处就是在浏览器访问时候不需要输入端口号,比如访问tomcat,使用http://localhost就可以了。
-
-
三.Tomcat目录结构
Tomcat的目录结构如下图所示:
[图片上传失败...(image-1d65d1-1649142082769)]
目录简单介绍:
-
bin
存放windows或linux平台上启动和关闭tomcat的脚本文件。
-
conf
存放tomcat服务器的各种配置文件,主要关注server.xml和web.xml
-
lib
存放tomcat服务器以及所有web应用都可以访问的jar文件
-
logs
存放tomcat执行时的日志文件
-
temp
存放tomcat运行时的临时文件
-
webapps
tomcat的web发布目录,外部访问的web应用都放在这个文件夹中
-
work
存放jsp编译后生成的对应的serverlet文件和.class文件
四.Tomcat部署项目
webapps目录是tomcat用来部署应用的,将我们的web应用放到这个目录下,我们的应用就会管理起来了。
以下以例子来说明。
例子:在webapps下创建一个web应用HelloWorld,在HelloWorld目录下创建一个index.html,然后访问index.html。
index.html文件内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>HelloWorld</title>
</head>
<body>
HelloWorld 你好!
</body>
</html>
启动Tomcat,访问:http://localhost:8080/HelloWorld/index.html,如下
[图片上传失败...(image-130e88-1649142082769)]
如果我们想将index.html设置为HelloWorld站点的首页,就需要编辑web.xml文件了。
可以如下操作:
在HelloWorld目录下新建一个目录WEB-INF(名字就得叫这个),在WEB-INF中创建一个web.xml(如果web.xml不会写,可以从其他web应用中复制一份过来,复制webapps/ROOT/WEB-INF/web.xml)
然后在web.xml中添加以下内容:
<welcome-file-list>
<welcome-file>
index.html
</welcome-file>
</welcome-file-list>
重新启动tomcat,直接访问:http://localhost:8080/HelloWorld,效果如下图
[图片上传失败...(image-18d8b8-1649142082769)]
五.Javaweb项目web目录结构
Javaweb项目部署的web目录结构是这样子的:
[图片上传失败...(image-fea38d-1649142082769)]
六.Tomcat虚拟目录配置
默认情况下,只有webapps目录中web应用目录才会被Tomcat当用一个web应用管理,但这样一来所有web项目都必须放在webapps目录下,如果太多项目放一起,可能造成磁盘空间不足等问题,也不是很方便web项目的管理,所以需要重新配置tomcat的虚拟目录,虚拟目录就访问web应用时候的根目录。比如上述例子中http://localhost:8080/HelloWorld,/HelloWorld就是虚拟目录,只是他与项目名字一样。
有两种方式配置虚拟目录:
-
配置
conf/server.xml
文件在server.xml文件中添加以下内容:
<Context path="/Helloworld1" docBase="E:\Helloworld1"/>
其中,path表示访问时输入的web项目名(虚拟目录,可以随意),docBase表示项目的绝对路径
例子:
- 在E盘下创建目录Helloworld1目录,在Helloworld1目录中创建一个WEB-INF目录和hello.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>你好,我是Helloworld1</h1> </body> </html>
-
打开tomcat目录下的conf目录,编辑里面的server.xml
添加
<Context path="/haha" docBase="E:\Helloworld1"/>
[图片上传失败...(image-bc7118-1649142082769)]
-
启动tomcat,访问站点:http://localhost:8080/haha/hello.html,结果如下图
[图片上传失败...(image-ba99f7-1649142082769)]
-
在
conf/Catalina/localhost
创建任意名称的xml文件第二种方法就是进入到tomcat根目录下,在
conf/Catalina/localhost
目录下创建一个xml文件,这个xml文件的名字就是站点的虚拟目录名字,这个xml文件内容为:<Context docBase="E:\Helloworld2"/>
例子:
-
在E盘下创建目录Helloworld2目录,在Helloworld2目录中创建一个WEB-INF目录和hello.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>你好,我是Helloworld2</h1> </body> </html>
在tomcat根目录下的conf/Catalina/localhost目录下创建一个XML文件,命名为hehe
-
在hehe.xml文件中写入以下内容
<?xml version="1.0" encoding="UTF-8" ?> <Context docBase="E:\Helloworld2" />
-
启动tomcat,访问站点:http://localhost:8080/hehe/hello.html,结果如下图
[图片上传失败...(image-705fc8-1649142082769)]
-