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 ...
随机推荐
- 虚拟机linux系统明明已经安装了ubuntu,但是每次重新进入就又是选择安装界面
本文转载:https://blog.csdn.net/weixin_41522164/article/details/82814375
- PHP通过循环给数组赋值
$userDatas = [ ['user_id'=>1], ['user_id'=>3] ]; $userIds = []; foreach ($userDatas as $item){ ...
- Python——Flask框架——程序的基本结构
一.安装 pip install flask 二.初始化 from flask import Flask app = Flash(__name__) 三.路由:处理URL和函数之间的关系的程序称为路由 ...
- Nintex Forms Drop-Down "z-index"
Now we’ve got the issue, that if we are working with a “Person-Column”, the drop-down where you can ...
- codeforces616B
Dinner with Emma CodeForces - 616B Jack decides to invite Emma out for a dinner. Jack is a modest st ...
- HTML知识点总结[部分]
Web服务的本质(socket实例) import socket def handle_request(client): buf = client.recv(1024) client.send(byt ...
- mpvue——Error: EPERM: operation not permitted
报错 $ npm run build > mpvue@ build D:\wamp\www\webpack\mpvue\my-project > node build/build.js w ...
- 「BZOJ1691」[Usaco2007 Dec] 挑剔的美食家 (Treap)
Description 与很多奶牛一样,Farmer John那群养尊处优的奶牛们对食物越来越挑剔,随便拿堆草就能打发她们午饭的日子自然是一去不返了.现在,Farmer John不得不去牧草专供商那里 ...
- php 排序数组array_multisort
$arr[] = array('name'=>'a','flag'=>1); $arr[] = array('name'=>'b','flag'=>2); $arr[] = a ...
- kvm 虚拟机XML文件
<domain type='kvm' id='29'> //domain 是一个所有虚拟机都需要的根元素,它有两个属性, //type定义使用哪个虚拟机管理程序,值可以是:xen.kvm. ...