美文网首页
Tomcat随记

Tomcat随记

作者: 一只96年的程序猿 | 来源:发表于2018-08-14 19:22 被阅读0次

    Tomcat概述

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


    • Tmocat下载安装

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

    tomcat服务器运行需要jdk的支持,版本对应为:

    tomcat5 需要jdk4以上支持

    tomcat6 需要jdk5以上支持

    tomcat7 需要jdk6以上支持

    tomcat8 需要jdk7以上支持

    1.安装及启动

    (1)安装

    解压后还需要配置JAVA_HOME环境变量,指向jdk的根目录,指定tomcat启动时使用哪个jdk

    (2)启动

    通过 bin/startup.bat 启动tomcat

    通过bin/shutdown.bat 关闭tomcat

    (3) 测试

    通过访问 http://localhost:8080 如果能够看到tomcat的首页就证明tomcat安装配置成功

    2.Tomcat配置

    (1)修改默认的端口号

    tomcat服务器默认监听的端口号为 8080,每次访问时都需要在主机名或IP地址后跟上端口号,如果想省略不写,将端口号修改为80即可!
    找到 [tomcat]/conf/server.xml文件(tomcat服务器的核心配置文件),修改文件中(70行) 的如下配置:

    <!--port修改为"80" -->
    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    

    (2)端口占用问题

    如果在启动时报端口占用的错误:

    java.net.BindException:Address already in use:JVM_Bind <null>:80
             at org.apache.tomcat.util.net...
    

    是因为服务器在启动的过程中监听80端口,而该端口已经被别的进程所占用, 因此服务器启动失败。

    解决方式一: 找到shutdown.bat命令, 双击运行, 将服务器按照正常的流程再关闭一次!

    解决方式二: 如果是别的程序占用了80端口,导致服务器启动失败, 在cmd中通过netstat-ano命令,查看占用80端口的进程,利用 taskkill /f /pid 进程ID 杀死指定ID进程。

    3.Tomcat的目录结构

    bin:tomcat批处理文件的存放目录

    conf:tomcat配置文件所在的目录,其中server.xml是tomcat的核心配置文件

    lib:tomcat运行时所依赖的jar包存放的目录.

    logs:tomcat日志文件所在的目录

    temp:tomcat运行时产生的临时文件存放的目录

    webapps:是localhost虚拟主机管理的目录,放在这个目录下的web应用可以通过浏览器访问localhost主机来访问

    work:tomcat运行时产生的工作文件存放目录. 是tomcat的工作目录

    4.web应用

    WEB应用和虚拟主机介绍.png

    (1)定义

    将为了实现某一功能而准备好的所有的web资源按照一定的目录结构组织起来的就是一个web应用

    虚拟主机不能直接管理web资源,web资源必须组织成web应用才可以交给虚拟主机去管理

    (2)web应用的目录结构

    news
     |
     |-- 静态web资源(html,css,js...),可以通过浏览器直接访问
     |-- WEB-INF
            |
            |--classes 用于存放动态web资源的class文件
            |--lib 用来存放动态web资源依赖的jar包
            |--web.xml web应用核心配置文件
    

    (3)部署web应用到虚拟主机中

    在tomcat服务器中提供了一个虚拟主机:localhost
    因此我们可以将WEB应用部署在localhost主机下.

    <Host name="localhost" appBase="webapps"
          unpackWARs="true" autoDeploy="true">
    

    部署方式:将组织好的WEB应用的目录直接丢进localhost主机默认管理的目录下(webapps)即可,这种配置方式不需要重启服务器就可以起作用

    (4)配置缺省的(默认)web应用在访问服务器中

    的WEB应用下的资源时,如果不想写WEB应用的虚拟目录的名称,可以将当前WEB应用配置为缺省的WEB应用. 配置方式是将WEB应用的虚拟目录名称改为ROOT即可

    (5)配置WEB应用的主页

    如果在访问WEB应用下某一个资源时(比如login.html),不想书写资源的路径,可以将这个资源页配置为WEB应用的主页,在访问时就可以省略该资源的路径。

    配置方式为: 在WEB应用的web.xml文件中, 添加如下配置:

    <welcome-file-list>
        <welcome-flie>login.html</welcome-file>
    </welcome-file-list>
    

    5.虚拟主机

    (1)定义

    所谓的虚拟主机就是tomcat服务器中配置的一个站点,在访问时就好像访问一台真实的主机一样

    tomcat服务器中可以配置多个站点,一个站点就是一台虚拟主机

    (2)配置虚拟主机

    在[tomcat]/conf/server.xml中的server/service/Engine标签内部添加一个Host标签:

    <!-- Host Setting:Config a new V-Host 
               appBase: 写的是虚拟主机目录-->
          <Host name="www.taobao.com" appBase="taobao">
    
          </Host>
    

    Host标签上的name是必须存在的属性,用来指定虚拟主机的名称.

    Host标签上的appBase是可选属性,用来指定虚拟主机默认管理的目录,如果没有配置该属性,表示当前主机没有默认管理的目录

    配置完后,还需要在DNS服务器中配置主机名和IP地址的映射关系,但是DNS服务器一般不能修改,可以通过hosts文件进行模拟,在下面的路径中找到hosts文件:

    127.0.0.1   www.taobao.com
    

    (3)配置缺省的(默认)虚拟主机

    如果通过主机名来访问,访问的就是对应的主机. 如果通过IP地址来访问,服务器不知道你访问的是哪一台虚拟主机,这时将会访问缺省的虚拟主机。缺省的虚拟主机配置如下:(默认是localhost)

    <Engine name="Catalina" defaultHost="localhost">
    

    6.其它相关

    (1)打成war包

    方式一: 进入应用的目录,用 jar -cvf xxx.war * 命令,就可以将当前目录下的所有内容打成war包

    方式二: 用压缩工具打成 xxx.zip包,然后把后缀名zip改为war即可

    • Tomcat顶层架构

    相关文章

      网友评论

          本文标题:Tomcat随记

          本文链接:https://www.haomeiwen.com/subject/toxbbftx.html