Tomcat简单学习

一.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安装和使用

  1. 下载:http://tomcat.apache.org/

  2. 安装

    在window系统中,下载得到压缩包,只需要解压压缩包就好了。

    安装目录最好不要有中文和空格。

  3. 卸载

    直接删除解压后的目录。

  4. 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来关闭,不属于正常关闭的。虽然也可以关闭,但是属于强制关闭。

  5. Tomcat启动可能遇到的问题

    前面讲了Tomcat的启动,是比较顺利的,但也不是一定就能顺利启动的,总会有些问题发生。可能遇到以下问题,做个记录:

    • 双击startup.bat,黑窗口一闪而过

      这种情况是因为Tomcat其实也是JAVA写的,也依赖jdk,因为没有正确的配置JAVA_HOME环境变量导致。

      解决方法:正确配置JAVA_HOME环境变量

    • 启动报错(大概率是端口问题)

      1. 可以通过找到占用的端口,并找到对应的进程,直接杀死进程。

        在cmd窗口中输入netstat -ano,看看谁占用了8080端口(Tomcat默认端口是8080),然后根据进程号,关闭这个进程

      2. 也可以通过修改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.xmlweb.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表示项目的绝对路径

    例子:

    1. 在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>
    
    1. 打开tomcat目录下的conf目录,编辑里面的server.xml

      添加<Context path="/haha" docBase="E:\Helloworld1"/>

      [图片上传失败...(image-bc7118-1649142082769)]

    2. 启动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"/>

    例子:

    1. 在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>
      
    2. 在tomcat根目录下的conf/Catalina/localhost目录下创建一个XML文件,命名为hehe

    3. 在hehe.xml文件中写入以下内容

      <?xml version="1.0" encoding="UTF-8" ?>
      <Context docBase="E:\Helloworld2" />
      
    4. 启动tomcat,访问站点:http://localhost:8080/hehe/hello.html,结果如下图

      [图片上传失败...(image-705fc8-1649142082769)]

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容