背景

在讨论如何组织源码目录之前,很有必要对现有web站点的组织结构进行测试,特别是2.2版本的API,在服务器版本上是不同的,所以在2.2之后的版本中,所有的服务器版本都要求能够使用标准的压缩web站点格式,这就是下面所要进行讨论的。

一个web应用程序,就是一个标准格式的多个目录和文件的层次组织,这种层次组织,可以在非压缩包到时候被访问,每一个目录和文件,在文件系统中都是单独存在的,或者是在压缩包环境下,比如一个.war文件,非压缩包格式在环境部署过程中很有用,而压缩包格式在发布环境是很有用。

Web应用程序的层次结构的最顶层结构,也就是应用程序的根节点,在这个目录下,应该放置组成应用程序用户入口的html文件和jsp文件。当系统管理员将该应用程序部署在其他的服务器上时,需要为tomcat设置一个上下文context路径,如果管理员设置的上下文路径为/catalog,则请求的URL为/catalog/index.html,对应的就是根节点目录下的index.html文件。

标准的目录结构

为了促进创建一个压缩格式的web应用程序,最好是将应用程序的可执行文件(tomcat用来执行应用程序的)放置在WAR格式所需的目录下,为了实现这一点,需要在根目录下包含以下几个内容:

  1. html、jsp等文件,html和jsp等文件,必须是client浏览器能直接访问的文件,比如JS文件等,样式文件等。如果应用程序站点很大,需要将这些文件分布在其他的子组织结构中,如果应用站点不大,一般只用一个目录,来存放这些文件;
  2. /web-inf/web.xml文件,应用程序的部署描述,这是一些xml文件,用来描述组成应用程序的各种小程序,同时还包含一些初始化参数、以及容器安全管理内容。在下面的子章节中会详细介绍。
  3. /web-inf/classes/目录,在这个目录中包含了应用程序的所有java类文件以及其他资源文件,包含程序类和非程序类,并不是包含在jar文件中。如果这些类文件是以java包的形式组织的,则需要在/web-inf/classes/体现这些java包的层次结构,比如一个java类名称为com.mycompany.mypackage.MyServlet,则在该目录下的名称为/WEB-INF/classes/com/mycompany/mypackage/MyServlet.class.

  4. /web-inf/lib/目录,该目录下包含了应用程序所需的jar文件和java类文件,比如第三方类文件或者是JDBC文件。

当向tomcat中安装应用程序时,在/web-inf/classes和/web-inf/lib/下的类文件和jar文件,对于应用程序中的其他类来说,都是可见的。也就是说如果在这俩目录下安装了所有必须的库类文件,则在应用程序安装过程中就会简单一下,不需要调整系统的类文件路径。

 
 

共享库文件

和其他程序容器一样,tomcat也支持一种机制,一次安装库jar文件,然后在所有已经安装的应用程序中调用,而不需要在这些应用程序中重新定义包含。在tomcat安装中,默认的用于共享代码的目录为$CATALINA_HOME/lib在这里的jar文件可以被所有的web站点和内部代码可见,将用于应用程序和内部tomcat使用的JDBC驱动器放置在该目录下是一个比较好的选择。

 
 

Web应用程序部署描述文件XML

如上文中所说,/web-inf/web.xml中包含了应用程序部署描述,正如文件扩展名所示,这是一个XML文件,定义了整个服务器所需要知道的参数。

TOMCAT context描述文件

当需要定义tomcat的某些特定配置选项,比如访问日志,数据源、管理配置或者其他参数时,可以在/meta-inf/context.xml中进行定义。在该XML文件中,最少要包含一个环境因素,该环境因子可以是部署web应用程序的主机的主机参数的子参数。

Tomcat第一个站点介绍的更多相关文章

  1. 《Getting Started with WebRTC》第一章 WebRTC介绍

    <Getting Started with WebRTC>第一章 WebRTC介绍 ​ 本章是对WebRTC做概念性的介绍. 阅读完本章后.你将对下面方面有一个清晰的理解:   .  什么 ...

  2. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-1.SpringBoot整合微信支付开发在线教育视频站点介绍

    笔记 第一章项目介绍和前期准备 1.SpringBoot整合微信支付开发在线教育视频站点介绍     简介: 课程介绍,和小D课堂在线教育项目搭建开发 1.课程大纲介绍         2.微信支付项 ...

  3. tomcat的搭建和介绍

    第19章 tomcat的搭建 19.1 tomcat学习之前的预备知识 19.1.1 什么是JVM和JDK,JRE JVM            java虚拟机,实现一份代码可以在不同的平台执行,具有 ...

  4. JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别

    1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) Sp ...

  5. Tomcat之Web站点部署

    上线代码有两种方式,第一种方式是直接将程序目录放在webapps目录下面,这种方式大家已经明白了,就不多说了.第二种方式是使用开发工具将程序打包成war包,然后上传到webapps目录下面.下面让我们 ...

  6. IntelliJ+AntBuild+Tomcat实现Maven站点的热部署

    这段时间要研究WebGL技术,做一下三维建模项目,涉及到较多的前端编码.eclipse编译器那令人着急的编码提示功能,以及丑恶的界面对项目的开展造成了一定的阻碍.为解决这个问题,转向IntelliJ ...

  7. Tomcat负载均衡、调优核心应用进阶学习笔记(一):tomcat文件目录、页面、架构组件详解、tomcat运行方式、组件介绍、tomcat管理

    文章目录 tomcat文件目录 bin conf lib logs temp webapps work 页面 架构组件详解 tomcat运行方式 组件介绍 tomcat管理 tomcat文件目录 ➜ ...

  8. Tomcat访问控制及站点部署(以WAR包形式上传)!(重点)

    访问控制 首先安装好jdk以及apache-tomcat并能访问tomcat网页 点击server status了解服务状态会报403的错误 第一步:修改user.xml配置文件 [root@loca ...

  9. JavaWeb——tomcat安装及目录介绍

    一.web web可以说,就是一套 请求->处理->响应 的流程.客户端使用浏览器(IE.FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Reque ...

随机推荐

  1. Javassist之常用API的应用 02

    测试模型代码: package org.study2.JavaSenior.annotation.javassistDemo; /** * @Auther:GongXingRui * @Date:20 ...

  2. Spring Boot 构建电商基础秒杀项目 (一) 项目搭建

    SpringBoot构建电商基础秒杀项目 学习笔记 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包, Spring Boot ...

  3. MySQL数据库安装配置

    1,下载MySQL 打开MySQL的官网www.mysql.com,发现有一个DOWNLOADS 点击它,进入到MySQL的下载页面,在页面的底部有一个MySQL Community Edition, ...

  4. fpm 打包工具安装调试

    https://github.com/jordansissel/fpm  官方git yum install ruby-devel gcc make rpm-build rubygems gem so ...

  5. codevs 2606 约数和问题 (数学+分块)

    题目描述 Description Smart最近沉迷于对约数的研究中. 对于一个数X,函数f(X)表示X所有约数的和.例如:f(6)=1+2+3+6=12.对于一个X,Smart可以很快的算出f(X) ...

  6. windows 虚拟环境下 安装 mysql 引擎一系列错误处理

    报错现象 运行django 报错. 很明显是缺少引擎 下载引擎 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb m ...

  7. MT【270】含参绝对值函数最大之二

    已知$f(x)=2ax\cos^2x+(a-1)\cos x-1,a>0$,记$|f(x)|$的最大值为$A$,1)求A.2)证明:$|-2a\sin 2x+(1-a)\sin x|\le 2A ...

  8. MT【254】值域包含值域

    已知函数$f(x)=x-\dfrac{1}{1+x},g(x)=x^2-2ax+4,$若对任意$x_1\in[0,1]$,存在$x_2\in[1,2]$,使得$f(x_1)=g(x_2)$,则实数$a ...

  9. js-基本语法

    条件语句 通过条件来控制程序的走向,就需要用到条件语句. 运算符 1.算术运算符: +(加). -(减). (乘). /(除). %(求余) 2.赋值运算符:=. +=. -=. =. /=. %= ...

  10. <数据结构基础学习>(一)数组

    一.数组基础 1.数组,即把数据码成一排存放. 数组优点:快速查询. 数组最好应用于“索引有语意”的情况,但并非所有有语意的索引都适用于数组,数组也可以处理“索引没有语意”的情况. 2.增.删.改.查 ...