《Servlet和JSP学习指南》一1.11 使用部署描述符

1.11 使用部署描述符

在前面的范例中已经学过,编写和部署Servlet应用程序是很容易的。部署的一个方面是给Servlet映射配置一条路径。在那些例子中,利用WebServlet注解类型给一个Servlet映射了一条路径。
使用部署描述符是配置Servlet应用程序的另一种方法,关于部署描述符的详细讨论,可查看第16章的内容。部署描述符总是命名为web.xml,并放在WEB-INF目录下。本章将介绍如何创建一个名为app01c的Servlet应用程序,并为它编写一个web.xml文件。
app01c有两个Servlet:SimpleServlet和WelcomeServlet,以及一个映射Servlet的部署描述符。代码清单1-5和代码清单1-6分别展示了SimpleServlet和WelcomeServlet。注意,Servlet类没有用@WebServlet进行标注。部署描述符如代码清单1-7所示 。


使用部署描述符有许多好处。第一,可以包含@WebServlet中没有的元素,如load-on-startup元素。这个元素在应用程序启动时加载Servlet,而不是第一次调用Servlet时加载。使用load-on-startup意味着,Servlet的第一次调用并不比后续的调用更占用时间。如果Servlet的init方法比较费时的话,这个元素就特别有帮助。
使用部署描述符的另一个好处是,如果需要修改配置值,如Servlet路径,就不需要重新编译Servlet类。
此外,可以将初始参数传给一个Servlet,并且不需要重新编译Servlet类就可以对它们进行编辑。
部署描述符还允许覆盖Servlet注解中指定的值。Servlet中的WebServlet注解,如果没有在部署描述符中进行声明,那么它将是无效的。但是,一个带有部署描述符的应用程序,如果对于不在其部署描述符中的Servlet进行标注,则其仍然有效。这意味着,可以在标注完Servlet之后,又在同一个应用程序的部署描述符中声明Servlet。
图1-8展示了app01c的目录结构。这个目录结构与app01a的并没有太大的区别。唯一的不同在于,app01c在WEB-INF中有一个web.xml文件。

在部署描述符中声明了SimpleServlet和WelcomeServlet之后,就可以利用下面这些URL来访问它们了:

关于部署和部署描述符的更多信息,可查看第16章的内容。

时间: 2024-07-28 12:50:22

《Servlet和JSP学习指南》一1.11 使用部署描述符的相关文章

《Servlet和JSP学习指南》一导读

前 言 欢迎你阅读本书,其内容涵盖了Servlet 3.0和JSP 2.2方面的技术. Java Servlet技术,或简称Servlet,是Java中用于开发Web应用程序的基本技术.Sun公司于1996年发布了Java Servlet技术,与CGI(Common Gateway Interface,公共网关接口)形成竞争.之后,它成为在Web中生成动态内容的标准.CGI的主要问题在于,它为每一个HTTP请求都创建一个新的进程.因为创建进程需要花费大量的CPU周期,这使得编写可扩展的CGI程序

《Servlet和JSP学习指南》一3.1 JSP概述

3.1 JSP概述 JSP页面其实是一个Servlet.但是,使用JSP页面则比Servlet要容易得多,这有两个原因:第一,不需要编译JSP页面:第二,JSP页面一般是扩展名为jsp的文本文件,可以利用任何文本编辑器来编写. JSP页面是在JSP容器中运行的.Servlet容器一般也是JSP容器.例如,Tomcat就是一个Servlet/JSP容器. 第一次请求一个JSP页面时,Servlet/JSP容器要做两件事情: 1. 将JSP页面转换成一个JSP页面实现类,这是一个实现javax.se

《Servlet和JSP学习指南》一3.5 脚本元素

3.5 脚本元素 第二种JSP句法元素是脚本元素,它将Java代码合并成一个JSP页面.脚本元素有3种类型:Scriptlet.声明及表达式,这些都将在接下来的小节中讨论. 3.5.1 Scriptlet Scriptlet是一个Java代码块,它以<%开头,以%>结束.例如,代码清单3-6中的scriptletTest.jsp页面就是使用了Scriptlet. 上述JSP页面中有两个Scriptlet.注意,在一个Scriptlet中定义的变量,对于它后面的其他Scriptlet是可见的.

《Servlet和JSP学习指南》一1.6 ServletConfig

1.6 ServletConfig 在Servlet容器初始化Servlet时,Servlet容器将ServletConfig传给Servlet的init方法.ServletConfig封装可以通过@WebServlet或者部署描述符传给一个Servlet的配置信息.以这种方式传递的每一条信息都称作初始参数.初始参数有两个组成部分:键和值. 为了从一个Servlet内部获取某个初始参数的值,应该在由Servlet容器传给Servlet的init方法的ServletConfig中调用getInit

《Servlet和JSP学习指南》一2.4 HttpSession对象

2.4 HttpSession对象 在所有的Session追踪技术中,HttpSession对象是最强大的,也是功能最多的.用户可以没有或者有一个HttpSession,并且只能访问他/她自己的HttpSession. HttpSession是当一个用户第一次访问某个网站时自动创建的.通过在HttpServlet-Request中调用getSession方法,可以获取用户的HttpSession.getSession有两个重载方法: 无参的getSession方法返回当前的HttpSession

《Servlet和JSP学习指南》一第3章 JSP 3.0

第3章 JSP 在第1章中我们已经知道,Servlet有两个缺陷无法克服.第一,在Servlet中编写的所有HTML标签都必须包在Java字符串中,这使得发送HTTP响应变成一项十分烦琐的工作.第二,所有文本和HTML标签都必须进行硬编码:因此,即使只对表示层做极其微小的修改,例如,修改背景颜色,也需要重新编译.JavaServer Pages(JSP)解决了Servlet中的这两个问题.但是,JSP并没有取代Servlet,而是对它进行了补充.现代的Java Web应用程序都使用Servlet

《Servlet和JSP学习指南》一1.3 编写基础的Servlet应用程序

1.3 编写基础的Servlet应用程序 Servlet应用程序编写起来非常简单,只需要创建一个目录结构,并将Servlet类放在某一个目录下即可.在本节中,将学习如何编写一个简单的Servlet应用程序,将它命名为app01a.最初它只包含一个Servlet:MyServlet,其会给用户发送一条问候信息. 需要用一个Servlet容器来运行Servlet.Tomcat是一个开源的Servlet容器,可以免费获得,它也可以在能够使用Java的任何操作系统平台上运行.如果你还没有安装Tomcat

《Servlet和JSP学习指南》一1.9 HTTP Servlet

1.9 HTTP Servlet 我们所编写的Servlet应用程序,尽管不能说全部,但其中大多数要用到HTTP.这意味着,可以利用HTTP提供的特性.javax.servlet.http包是Servlet API中的第二个包,其包含了编写Servlet应用程序的类和接口.javax.servlet.http中的许多类型覆盖了javax.servlet中的类型. 图1-5展示了javax.servlet.http中的主要类型. 1.9.1 HttpServlet HttpServlet类覆盖ja

《Servlet和JSP学习指南》一第1章 Servlet 1.1 Servlet API概述

第1章 Servlet Servlet是开发Servlets应用程序的主要技术.掌握Servlet API是成为一名技术高超的Java Web开发者的基础.你必须非常熟悉Servlet API中所定义的70多种类型.这个数字听起来似乎不少,但是如果你每次学一种,就不会觉得困难了. 本章将介绍Servlet API,并教你编写第一个Servlet应用程序. 1.1 Servlet API概述 Servlet API中有4个Java包,包括: javax.servlet.包含定义Servlet与Se