zoukankan      html  css  js  c++  java
  • Tomcat基础教程(四)

    一、将Web应用部署到Tomcat中

    为什么要部署?将Web应用部署到Tomcat中,那么Tomcat就能找到相应的Web应用,当Tomcat启动时就会加载和初始化Web应用,而在Tomcat启动后,客户端就看可以使用相应的URL通过Tomcat访问到Web应用了。

    部署的方式有两种:1)直接将Web应用结构目录添加到Tomcat的webapps目录 2)使用Context元素

    1. 接将Web应用结构目录添加到Tomcat的webapps目录

    在Tomcat目录结构中,有一个叫做webapps的文件夹,由之前所讲,它会存放Web应用,一个文件夹代表一个Web应用。而在Tomcat启动时,它会默认加载webapps文件夹下面的所有Web应用。

    2. 使用Context元素

    根据教程(二)中的Tomcat服务器架构图知道,Context表示Host中的一个Web应用,每个Web应用可以是一个war(Web Application Archive)文件或者文件系统中的一个文件夹。一个Host可以有多个web应用,且他们必须要有唯一的上下文路径来区分。如果某个Web应用的上下文路径字符串是空串,则该Web应用就成为其所在虚拟主机的默认Web应用,所有请求URL没有与Host中其他任何一个Web应用上下文路径匹配的客户请求都会被分发到该Web应用。

    Context元素属性列表如下:

    元素 属性 Mandatory Description
    Context docBase Y 表示Web应用的根路径。若为war文件,属性值为该文件的路劲,若为目录,则为Web应用根目录路径
      path N Web应用的上下文路径
      reloadable N true/false(Default)。表示是否允许Tomcat服务器监视Web应用中/WEB-INF/classes和/WEB-INF/lib目录的变化
      workDir N 指定一个目录路径来作为该Web应用的临时工作目录。若未指定该属性,则会使用Tomcat下的work目录
      unpackWAR N

    true/false,如果设置成true则Tomcat在运行压缩的Web应用(war文件)会先将它解压缩

    举例:<Context docBase="D:\webAppBaseapplication" path ="/app1" workDir="D:\WebAppBaseapplicationwork">

    将Context元素配置到Tomcat服务器中有如下方法:

    1)在server.xml中添加Context元素 - 添加到Host节点内部,作为Host的元素。优点:简单直观;缺点:如果有很多Web应用,要配置很多Context元素,这样会使server.xml很难阅读和维护

    2)添加到${TOMCAT_HOME}confcontext.xml文件中 - 该文件是用于配置所有Web应用的Context元素。优点:将Context元素从server.xml中独立出来;缺点:当应用多了则不易维护

    3)为每个虚拟主机的所有Web应用使用一个独立的配置文件 - ${CATATINA_HOME}/conf/[enginename]/[hostname]/context.xml.default - 即在虚拟主机中建立该文件,然后添加Context元素

    4)为每个Web应用使用独立的配置文件 - 在${CATATINA_HOME}/conf/[enginename]/[hostname]目录中可以通过使用xml文件来为每个Web应用定义Context,文件名为Web应用的上下文路径

    二、配置Web应用

    每个Web应用都有一个对Web应用进行配置的web.xml(特有部署描述符),存在WEB-INF的文件夹中;而在Tomcat的conf文件夹中也有web.xml(通用部署描述符),用来设置通用的配置。当通用部署描述符和特有部署描述符有冲突时,特有部署描述符的配置项优先。

    Web应用部署描述符

    根元素web-app,其可以包含若干个子元素,而每个子元素都对应于Web应用某个方面的配置,且他们的顺序是任意的。

    web-app根元素有如下属性:version, id, metadata-complete。比较常用的是version,表明Web描述文件兼容的最好版本。

    web-app根元素下最常用的子元素:

    • welcome-file-list: 定义一个welcome文件列表
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    welcome-file-list会定义目录的默认访问文件,当客户端请求的URL指向一个目录而非文件时,则就会访问默认访问文件,而这个list中定义的文件是有访问顺序的,按照显示顺序优先返回,若前面的文件不存在,则依次访问后面的文件。

    • servlet和servlet-mapping: 这两个元素主要用于在Web应用中添加Servlet。servlet元素用于定义Servlet的名称,实现类等属性,servlet-mapping用于定义servlet的路径映射方式。
    复制代码
    <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <!-- can have multiple init-param -->
        <load-on-startup>3</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>
    复制代码

    在上面的servlet元素中,其名字是jsp,所使用的java类为org.apache.jasper.servlet.JspServlet,其中的<init-param>元素为java类所要用到的参数;而<load-on-startup>元素中定义一个整数值,如果值为0或正整数,则表明该Servlet会在Tomcat服务器启动时必须被加载和初始化,若为负整数或该配置项不存在时Tomcat可以选择不在启动时加载和初始化Servlet。

    在<servlet-mapping>元素中定义servlet名字为jsp的路径映射方式 -- <url-pattern>,该元素定义了一个请求URL模板,请求URI与该模板匹配时请求将被分配到对于的Servlet。在该段xml代码中,定义了访问*.jsp和*.jspx的文件都将被分配到名字为jsp的Servlet进行处理。

    • filter和filter-mapping: 这两个元素主要用于在Web应用中添加过滤器。filter元素用于定义过滤器的名称,实现类等属性,filter-mapping用于定义filter的路径映射方式。
    • mime-mapping: 该元素定义在Web应用中如何根据文件名后缀映射出文件的mime类型
    <mime-mapping>
        <extension>htm</extension>
        <mime-type>text/html</mime-type>
    </mime-mapping>

    Note: MIME是Multipurpose Internet Mail Extensions(多用途Internet邮件扩展)的简称,其被用于判断二进制文件的内容和打开方式。

    • session-config: 用于配置session的一些参数,例如session的超时时间
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

    总结: Tomcat中可以部署多个Web应用,而其通过应用的上下文路径来区分各个Web应用。部署Web应用可以通过添加Context元素。我们可以通过配置Tomcat中的web.xml或者Web应用自身的web.xml来对Web应用进行配置。

  • 相关阅读:
    Ubuntu 系统下载
    Shell 变量自增实现方法
    shell 单引号以及双引号
    A look at WeChat security
    利用HTTP Cache来优化网站
    require.js 简洁入门
    Nginx rewrite URL examples with and without redirect address
    页面制作部分之PS切图
    Joda-Time 简介
    [官方摘要]Setup And Configuration memcached with Tomcat
  • 原文地址:https://www.cnblogs.com/jameslif/p/3493899.html
Copyright © 2011-2022 走看看