《Head First Servlets & JSP》-11-Web应用部署
Web目录

WAR文件
WAR文件只是Web应用结构的一个快照,采用了一种更可移植的压缩形式。
建立WAR文件时,就是把整个Web应用结构(去掉Web应用上下文目录,就是把WEB-INF之上的一级目录去掉)压缩起来,给定一个.war扩展名。
容器如何知道Web应用的名字/上下文呢?Tomcat中,WAR文件名就是了!
在一个WAR文件中,可以在META-INF/MANIFEST.MF文件中声明库依赖性(和直接放在WEB-INF/lib下有何区别?后文见分晓)。
部署后的WAR文件的样子

使静态内容和JSP可以直接访问
META-INF或WEB-INF中的内容不可直接访问,否则产生404错误。

META-INF什么用
如果类是使用WEB-INF/classes目录或WEB-INF/lib中的一个jar文件部署在Web应用中,那么这些类就能自动得到;
但是,若应用依赖某个特定版本的库,如果容器无法提供这些库,就不能成功地部署应用,那么就可以在MANIFEST.MF文件中告诉容器必须访问哪些可选的库。(不能部署应用比请求时发现错误要好得多!)
记住,容器查看WEB-INF/lib中的jar文件之前,会先查找WEB-INF/classes目录中的类。
DD中的servlet映射

三种url-pattern元素
完全匹配、目录匹配和扩展名匹配:

有个servlet映射的重要规则
- 容器会按下一页显示的顺序查找匹配。换句话说,首先查找完全匹配。如果找不到完全匹配。再查找目录匹配。如果目录匹配也找不到,就查找扩展名匹配。
- 如果一个请求与多个目录url-pattern匹配,容器会选择最长的远配。
在DD中配置欢迎文件
配置welcome-file-list元素,容器会从该列表的第一个欢迎文件开始:

在DD中配置错误页面
- 声明一个普通型错误页面
这应用于Web应用中的所有资源,而不只是JSP

- 更为明确的异常错误声明

- 根据HTTP状态码声明错误页面

在DD中配置servlet初始化
servlet默认会在第一个请求到来时初始化,若希望在部署或服务器重启时加载servlet,可以设置load-on-startup元素。
若配置多个该元素,则按照值的从小到大先后加载。
JSP文档:XML兼容的JSP页面

最后看看几个最近还没用到的标记
- 与EJB相关的DD标记


JNDI env-entry DD标记

mime-mapping DD标记

《Head First Servlets & JSP》-11-Web应用部署的更多相关文章
- Myeclipse发布第一个jsp页面及web project部署到tomcat上的几种方法
菜鸟日记: 1:new web project: 2:fix the visiting path of the tomcat,打开在安装目录下conf目录中的server.xml,在</Hos ...
- JSP之WEB服务器:Apache与Tomcat的区别 ,几种常见的web/应用服务器
注意:此为2009年的blog,注意时效性(针对常见服务器) APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等 ...
- eclipse:eclipse for java EE环境下如何配置tomcat服务器,并让tomcat服务器显示在控制台上,将Web应用部署到tomcat中
eclipse环境下如何配置tomcat 打开Eclipse,单击"Window"菜单,选择下方的"Preferences". 单击"Server& ...
- #Eclipse web工程 部署 三种方式 3
Eclipse web工程 部署 三种方式 3.热部署 在Eclipse中,实现 修改一个.java文件或者.jsp文件甚至是配置文件,不需要重启WEB服务器的前提下让修改生效,实现tomcat自动加 ...
- Linux web工程部署远程必备软件安装
一.序 最近在将程序往linux上面部署,特此记录下部署步骤,待以后参考. web工程部署必备软件为:JDK.tomcat.数据库软件(oracle或mysql),远程监控.上传下载必备软件:VNC. ...
- Tomcat的四种web应用部署方式详解
在Tomcat中有四种部署Web应用的方式,简要的概括分别是: (1)利用Tomcat自动部署 (2)利用控制台进行部署 (3)增加自定义的Web部署文件(%Tomcat_Home%\conf\Cat ...
- Spring整合Redis&JSON序列化&Spring/Web项目部署相关
几种JSON框架用法和效率对比: https://blog.csdn.net/sisyphus_z/article/details/53333925 https://blog.csdn.net/wei ...
- Eclipse web工程 部署 三种方式 1
Eclipse web工程 部署 三种方式 1.run on 前提: 安装 好 eclipse.jdk.tomcat 然后 新建一个 web工程 注意此处Default output folder 最 ...
- 《Head First Servlets & JSP》-1-前言
<Head First Servlets & JSP>(中文版) BB,KS & BB著, 苏钰函,林剑译,中国电力出版社 数据交互 Web浏览器和Web服务器:通过Htt ...
随机推荐
- UVA - 1606 Amphiphilic Carbon Molecules (计算几何,扫描法)
平面上给你一些具有黑或白颜色的点,让你设置一个隔板,使得隔板一侧的黑点加上另一侧的白点数最多.隔板上的点可视作任意一侧. 易知一定存在一个隔板穿过两个点且最优,因此可以先固定以一个点为原点,将其他点中 ...
- [ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 请求的过滤器:中间件
[ Laravel 5.5 文档 ] 处理用户请求 —— HTTP 请求的过滤器:中间件 http://laravelacademy.org/post/7812.html 简介 中间件为过滤进入应用的 ...
- 查看.Net Framework版本号
目录 摘要 .NET Framework 的版本 确定计算机上安装的 .NET Framework 版本 补充几个查看.Net Framework版本号 概要 本文描述如何确定计算机上安装的 Micr ...
- 扒站工具Teleport Pro教程
1.下载软件 http://www.jb51.net/softs/44134.html 2.安装 3.界面 先点开帮助点注册(类似于破解要不全站扒不全) 下面请看ppt, http://www.doc ...
- POJ3468:A Simple Problem with Integers
浅谈分块:https://www.cnblogs.com/AKMer/p/10369816.html 题目传送门:http://poj.org/problem?id=3468 分块裸题.对于每个块记录 ...
- unix下网络编程之I/O复用(五)
前言 本章节是用基本的Linux/Unix基本函数加上select调用编写一个完整的服务器和客户端例子,可在Linux(ubuntu)和Unix(freebsd)上运行,客户端和服务端的功能如下: 客 ...
- Spring集成Quartz定时任务框架介绍
在JavaEE系统中,我们会经常用到定时任务,比如每天凌晨生成前天报表,每一小时生成汇总数据等等.我们可以使用java.util.Timer结合java.util.TimerTask来完成这项工作,但 ...
- Unreal Engine 4的常见Tips
转自:http://www.unrealchina.net/portal.php?mod=view&aid=66 退出游戏: UKismetSystemLibrary::QuitGame(th ...
- Spring 学习一 @Autowired
@Autowired Spring 2.5 引入了 @Autowired ,它可以对类成员变量.方法及构造函数进行标注,完成自动装配的工作. 通过 @Autowired的使用来消除 set ,get方 ...
- VisualGDB系列10:快速调试Linux应用程序
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文介绍如何快速调试GCC构建的Linu ...