总结随笔_了解Tomcat(概述,安装、启动、配置)

重新回顾Tomcat,重新认识汤姆猫得意

1.    Tomcat概述(到处都有详解,我这里就简单的一笔带过)

Tomcat服务器由Apache提供,开源免费。我现在用的是apache-tomcat-8.5.20,当前最新版本是9,不过新版本刚出来可能还不太稳定所以先不要用最新版的。

2.    安装、启动、配置Tomcat

 官网下载地址:http://tomcat.apache.org

 

l        安装版:一台电脑上只能安装一个Tomcat;

l        解压版:无需安装,解压即可用,解压多少份都可以,所以我们选择解压版。

如下图,我下载了两个较新的版本:

   

如在我的电脑上这两个我都曾经安装过,所以在我的计算机服务里面就有它们的影子,可以自己根据需求启动想 用的版本:(这个就简单提一下)

    

           Tomcat目录结构

     我是安装解压版的,然后我解压的路径为:F:\tomcat\apache-tomcat-8.5.20(这个路径不能有中文和空 格,且最好不要太深的路径)

      

           启动和关闭Tomcat

在启动Tomcat前,必须要配置一些环境变量:

   1.JAVA_HOME:必须向配置JAVA_HOME,因为Tomcat启动需要JDK;这个变量我在刚接触Java SE时就配置了,如图我在本机配置的路径:


 

这个可以自己更改:比如我其实一开始用的版本是jdk8,现在又改成了jdk7:


 

  2.CATALINA_HOME:如果是安装版,那么还需要配置这个变量,这个变量用指定Tomcat的安装路径,例如我的:F:\tomcat\apache-tomcat-8.5.209(其实就是刚刚的解压路径);

 


 

其实一开始我在想这个变量的名字是不是与F:\tomcat\apache-tomcat-8.5.20\bin目录下的catalina.bat文件有关。充满好奇心的我等会在原理部分我就用editplus打开这个文件看看里面写的究竟是些什么东东,哈哈。


    ··

l            启动:进入%CATALINA_HOME%\bin目录,找到startup.bat,双击即可;

l            关闭:进入%CATALINA_HOME%\bin目录,找到shutdown.bat,双击即可;

l            原理:(这部分纯属好奇心去看看,哈哈)

   startup.bat会调用catalina.bat,而catalina.bat会调用setclasspath.batsetclasspath.bat会使用JAVA_HOME环境变量,所以必须在启动Tomcat之前把JAVA_HOME配置正确

----我打开startup.bat、catalina.bat、setclasspath.bat这个三个文件,第一感觉就是原来都是用C写的东西呀(不得不感叹一下C才是编程语言的基础,哈哈)


1)、首先我打开startup.bat:正如下图所示,的确是调用catalina.bat文件。

  



看完startup.bat文件后感觉它的作用就是帮你找到catalina.bat并执行它,其他并没有什么,当然好处就是如果配置CATALINA_HOME的环境变量了,就可以把startup.bat 放到任何目录下,都可以启动tomcat了。

 

(2)、由于catalina.bat代码较为多,这里我就简单的挑一些语句分析一下:

 


 

由上图可知,从170行开始才出现setclasspath.bat查资料得知:

注意1在184行的bootstrap.jar是Tomcat的内核,它同时用到了commons-daemon.jar和commons-logging- api.jar等jar包,但是我们并没有把它们包含在环境变量中,怎么找到的呢?其实这是通过在bootstrap.jar中的 MANIFEST.MF设置的。

 

 


 

 

注意2将catllina.bat文件中的位于%_RUNJAVA%前面的start "Tomcat"部分删除后,就不会在启动一个新窗 口,所以不会出现了错误还来不及看的时候新窗口就自动关闭了,因此在命令行窗口中执行startup.bat命令就可 以查看到Tomcat启动失败时的提示信息。

 

(3)、setclasspath.bat主要负责寻找、检查JAVA_HOMEJRE_HOME两个变量。(这里就简单看一下啦)

由以上这三个文件可看出Tomcat的启动原理。

          启动问题

如果出现startup.bat后窗口一闪即消失:检查JAVA_HOME环境配置是否正确;

 ---真是不巧之前我的可以,现在又不行了,由于闪的太快看不清写的什么错误,然后我来到startup.bat文件,在 文件里的最后找到:

call"%EXECUTABLE%" start %CMD_LINE_ARGS%

然后将start改为run就不会弹出新窗口,然后就可以慢慢看提示的错误信息:


如上图,balabala,一大堆错误,然后我就不想看了,哈哈哈哈偷笑

一开始以为是setclasspath.bat文件没完善配置信息,就添加了红圈部分信息,同时也在环境变量里面新建了JRE_HOME的环境变量。

 


但是结果还是这样我也不知道什么原因,昨天好好的,什么都没有干,今天一打开就这样,由于我也懒得 去分析哪些错误提示,最简单粗暴的方法就是重新解压apache-tomcat-8.5.20 :

  

 

 

可见最后一行出现了Server startup in 3476 ms,说明Tomcat启动成功啦,那我们就来浏览器输入    http://localhost:8080/:出现了这个网页说明就成啦!

 

   


3. 修改tomcat端口号

将F:\tomcat\apache-tomcat-8.5.20\conf下的server.xml如图69行中的8080改为54321时:

    

 

在浏览器就要输入改变的端口号,之前的默认端口号就访问不了了。

       

  

 

注意:需要注意的是修改端口后要重启Tomcat,不然会报错。


4.Tomcat的目录结构
       

至于它们分别放什么,我也只是简单的了解了几个,因为我用的是tomcat8,所以我再网上找了一个 Tomcat8.0的人家的总结并加了一些自己的补充说明:http://blog.csdn.net/begin27/article/details/50903095

 

Tomcat8.0的目录结构: 

/bin存放windowsLinux平台上启动和关闭Tomcat的脚本文件,startup.bat,shutdown.bat,可以直接开启关闭  tomcat服务。还有一些jar包如tomcat-juli.jar

/conf:存放Tomcat服务器的各种全局配置文件,其中包括server.xmlTomcat的主要配置文件,,里面配置了tomcat    3个端口号:

<Server port="8005"shutdown="SHUTDOWN">

②<Connector port="8080"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

③<Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />),

   Tomcat-users.xml(配置tomcat用户的账户名和密码)和web.xml等配置文件。

/lib存放Tomcat服务器以及所有web应用都可以访问的jar文件。

/logs:存放Tomcat执行时的日志文件,也就是当启动startup.bat文件时弹出cmd窗口出现的那一大堆代码就存放在这    个文件夹中的log文件中。

/temp:存放Tomcat运行时所产生的临时文件。

/webappsTomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录,当应用myecplise时部署的项目文   件就放在这里。

/workTomcatJSP生成的Servlet源文件和字节码文件放到这个目录下。

 

注意(就当做是解释MyEclipse与Tomcat关联时项目是如何工作的吧

MyEclipse中将一个web项目添加到服务器中(web容器,如tomcat),这个项目里的java文件会被MyEclipse先编译成字节码文件(.class)后加到tomcat目录下的webapps,webapps下项目里WEB-INF有个classes文件夹里面放的是java文件编译后的class字节码,jsp文件此时不会被编译。等服务启动,第一次访问某jsp页面时,对应被访问到的jsp页面会被编译成字节码和servlet(index.jsp被编译成index_jspindex_jsp)保存在work目录下。

tomcatweb服务器的时候,部署的程序在webApps下,这些程序都是编译后的程序(发布到tomcat的项目里含的java类,会被编译成.class后才发布过来,源文件没有发布过来,但这里的jsp没有经编译的)。

tomcat有一个work目录,里面存放了jsp页面的缓存,访问过的jsp都会编译,从 work里进入Catalina后的如localhost站点文件夹下的项目,我们可以看到那些jsp页面会被编译成应该是servlet文件,下次再来访问时,就直接运行servlet类就可以向客户端反应响应页面了,所以有的博客说第一次访问时会比较慢,是因为新发布上去的页面在第一个人访问时,会先编译成servlet文件,所以慢了,一旦编译好,那么除非jsp页面修改,不然下次访问直接运行servlet就可以响应用户,所以快,编译后的文件都会存储在work目录下。

tomcat显示的目录,都会从这个缓存里找编译后的jsp对应的class文件。所以当清空了work目录后,该过程将会从新来过。有的时候会遇到一个问题,就是修改后的页面在tomcat运行的时候显示不了修改后的痕迹。这个时候删除work目录下对应的项目文件夹,重新启动tomcat就可以了。

tomcatconf配置文件夹下的server.xml文件里配置了Host name后,就会在conf下的Catalina文件夹和work下的Catalina文件下建立站点名称的文件夹,项目每次发布都会放入来,也会记录到 conf下的Catalina文件夹的配置文件里去。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值