Tomcat第一个站点介绍
背景
在讨论如何组织源码目录之前,很有必要对现有web站点的组织结构进行测试,特别是2.2版本的API,在服务器版本上是不同的,所以在2.2之后的版本中,所有的服务器版本都要求能够使用标准的压缩web站点格式,这就是下面所要进行讨论的。
一个web应用程序,就是一个标准格式的多个目录和文件的层次组织,这种层次组织,可以在非压缩包到时候被访问,每一个目录和文件,在文件系统中都是单独存在的,或者是在压缩包环境下,比如一个.war文件,非压缩包格式在环境部署过程中很有用,而压缩包格式在发布环境是很有用。
Web应用程序的层次结构的最顶层结构,也就是应用程序的根节点,在这个目录下,应该放置组成应用程序用户入口的html文件和jsp文件。当系统管理员将该应用程序部署在其他的服务器上时,需要为tomcat设置一个上下文context路径,如果管理员设置的上下文路径为/catalog,则请求的URL为/catalog/index.html,对应的就是根节点目录下的index.html文件。
标准的目录结构
为了促进创建一个压缩格式的web应用程序,最好是将应用程序的可执行文件(tomcat用来执行应用程序的)放置在WAR格式所需的目录下,为了实现这一点,需要在根目录下包含以下几个内容:
- html、jsp等文件,html和jsp等文件,必须是client浏览器能直接访问的文件,比如JS文件等,样式文件等。如果应用程序站点很大,需要将这些文件分布在其他的子组织结构中,如果应用站点不大,一般只用一个目录,来存放这些文件;
- /web-inf/web.xml文件,应用程序的部署描述,这是一些xml文件,用来描述组成应用程序的各种小程序,同时还包含一些初始化参数、以及容器安全管理内容。在下面的子章节中会详细介绍。
- /web-inf/classes/目录,在这个目录中包含了应用程序的所有java类文件以及其他资源文件,包含程序类和非程序类,并不是包含在jar文件中。如果这些类文件是以java包的形式组织的,则需要在/web-inf/classes/体现这些java包的层次结构,比如一个java类名称为com.mycompany.mypackage.MyServlet,则在该目录下的名称为/WEB-INF/classes/com/mycompany/mypackage/MyServlet.class.
- /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第一个站点介绍的更多相关文章
- 《Getting Started with WebRTC》第一章 WebRTC介绍
<Getting Started with WebRTC>第一章 WebRTC介绍 本章是对WebRTC做概念性的介绍. 阅读完本章后.你将对下面方面有一个清晰的理解: . 什么 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-1.SpringBoot整合微信支付开发在线教育视频站点介绍
笔记 第一章项目介绍和前期准备 1.SpringBoot整合微信支付开发在线教育视频站点介绍 简介: 课程介绍,和小D课堂在线教育项目搭建开发 1.课程大纲介绍 2.微信支付项 ...
- tomcat的搭建和介绍
第19章 tomcat的搭建 19.1 tomcat学习之前的预备知识 19.1.1 什么是JVM和JDK,JRE JVM java虚拟机,实现一份代码可以在不同的平台执行,具有 ...
- JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别
1. 学习计划 第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) Sp ...
- Tomcat之Web站点部署
上线代码有两种方式,第一种方式是直接将程序目录放在webapps目录下面,这种方式大家已经明白了,就不多说了.第二种方式是使用开发工具将程序打包成war包,然后上传到webapps目录下面.下面让我们 ...
- IntelliJ+AntBuild+Tomcat实现Maven站点的热部署
这段时间要研究WebGL技术,做一下三维建模项目,涉及到较多的前端编码.eclipse编译器那令人着急的编码提示功能,以及丑恶的界面对项目的开展造成了一定的阻碍.为解决这个问题,转向IntelliJ ...
- Tomcat负载均衡、调优核心应用进阶学习笔记(一):tomcat文件目录、页面、架构组件详解、tomcat运行方式、组件介绍、tomcat管理
文章目录 tomcat文件目录 bin conf lib logs temp webapps work 页面 架构组件详解 tomcat运行方式 组件介绍 tomcat管理 tomcat文件目录 ➜ ...
- Tomcat访问控制及站点部署(以WAR包形式上传)!(重点)
访问控制 首先安装好jdk以及apache-tomcat并能访问tomcat网页 点击server status了解服务状态会报403的错误 第一步:修改user.xml配置文件 [root@loca ...
- JavaWeb——tomcat安装及目录介绍
一.web web可以说,就是一套 请求->处理->响应 的流程.客户端使用浏览器(IE.FireFox等),通过网络(Network)连接到服务器上,使用HTTP协议发起请求(Reque ...
随机推荐
- endnote格式
endnote插入参考文献后的对齐方式和缩进空格 听语音 | 浏览:4780 | 更新:2016-11-28 20:46 1 2 3 4 5 6 7 分步阅读 1.endnote 导入到word参考文 ...
- 了解C#中的HashSet与示例
在C#中引入HashSet 在.NET框架中,有几个类可用于执行这些操作.一些课程如下: 列表 字典 哈希集 队列 集合 在C#编程中,像ArrayList,List这样的集合,只需添加其中的值,而不 ...
- poj-3080(kmp+暴力枚举)
题意:给你多个字符串,问你这几个字符串的最长公共子串是哪个,如果有多个,输出字典序最大的那个,如果最长的公共子串长度小于3,输出一个奇怪的东西: 解题思路:首先看数据,数据不大,开始简单快乐的暴力之路 ...
- zabbix在执行docker命令是报错
系统环境 ubuntu 14.04 x64 安装了zabbix,去监控docker的状态,安装zabbix见我的另外一篇文章 错误如下 WARNING: Error loading config f ...
- BZOJ3676[Apio2014]回文串——回文自动机
题目描述 考虑一个只包含小写拉丁字母的字符串s.我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度.请你求出s的所有回文子串中的最 大出现值. 输入 输入只有一行,为一个只包含小写字 ...
- DRF 解析器和渲染器
一,DRF 解析器 根据请求头 content-type 选择对应的解析器就请求体内容进行处理. 1. 仅处理请求头content-type为application/json的请求体 from dja ...
- Linux CAT与ECHO命令详解
Linux CAT与ECHO命令详解 cat命令是Linux下的一个文本输出命令,通常是用于观看某个文件的内容的: cat主要有三大功能: 1.一次显示整个文件. $ cat filename 2.从 ...
- spi slaver接口的fpga实现
前言 spi从机接口程序,数据位8bit,sck空闲时低电平,工作时第一个沿数据传输.只有一个从机,cs低电平片选,slaver开始工作. 流程: 接口定义: 编码实现:(版权所有,请勿用于商业用途, ...
- angularJS 路由加载js controller 未定义 解决方案
说明 本文主要说明,在angularJS框架使用中,angularJS 路由加载js controller 未定义 解决方案. 路由 $routeProvider 异步加载js 路由的基本用法,请查看 ...
- FlatList
FlatList 之前使用的组件是ListView,当时要添加一个下拉刷新,上拉加载的功能,所以对ListView做了一些封装,但是后来看官方文档,不建议再使用ListView,因为效率问题,做过An ...