背景

在讨论如何组织源码目录之前,很有必要对现有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. MySQL 5.7 关闭严格模式

    If your app was written for older versions of MySQL and is not compatible with strict SQL mode in My ...

  2. 去掉AMD锐龙和Intel Kaby Lake的不支持的硬件的提示

    Windows 7和Windows 8.1都不支持AMD Ryzen 锐龙系列和Intel最新的Kaby Lake系列,Windows Update 更新之后总是会提示“不支持的硬件(Unsuppor ...

  3. NetScope脱机(localhost)使用[转】

    https://blog.csdn.net/jiwu999/article/details/79626773 方法: step1:git clone https://github.com/ethere ...

  4. Ubuntu基于zsh自定义设置shell主题

    为优化Ubuntu命令行页面效果,Google一番选择github上开源项目zsh,以自定义Shell主题,注:本机系统为Ubuntu 14.04 1.安装zsh sudo apt-get insta ...

  5. Go语言流程控制

    1.条件语句 几个注意点和C#不一样的. { } else { } ① 条件语句不需要使用括号将条件包含起来 a<5 ,C#必须有() ②无论语句体内有几条语句,花括号{}都是必须存在的:C#如 ...

  6. Random Maze HDU - 4067(预定义状态建边(贪心建边))

    Random Maze Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  7. Nagios 配置自动发邮件功能

    安装sendmailyum install -y sendmail* mailx 修改防火墙设置,添加25端口到防火墙vi /etc/sysconfig/iptables 重启 iptables.se ...

  8. Linux下搜狗输入法和快捷键Ctrl+Space冲突的解决

    配置快捷键(不是搜狗的设置) 把搜狗的启动快捷键给删了(如果有两个键盘[英+中],你按Shift就可以切换了,完全没必要占着茅坑) 其他快捷键冲突在键盘里面设置 over

  9. LinkedList(JDK1.8)源码分析

    双向循环链表 双向循环链表和双向链表的不同在于,第一个节点的pre指向最后一个节点,最后一个节点的next指向第一个节点,也形成一个"环".而LinkedList就是基于双向循环链 ...

  10. Gnome添加Open with Code菜单

    解决方法 测试环境: Manjaro Linux Rolling at 2018-08-31 19:04:49 Microsoft Visual Stdio Code 1.26.1 Bulid: 20 ...