tomcat中web.xml详解
- 格式:doc
- 大小:106.00 KB
- 文档页数:20
Tomcatweb.xml详解Tomcat加载顺序加载类和资源的顺序为:1、/Web-INF/classes2、/Web-INF/lib/*.jar3、Bootstrap4、System5、$CATALINA_HOME/common/classes6、$CATALINA_HOME/common/endores/*.jar7、$CATALINA_HOME/common/lib/*.jar8、$CATALINA_HOME/shared/classes9、$CATALINA_HOME/shared/lib/*.jar两个web配置⽂件Servlet定义的时候,我发现在${catalina.home}/conf下以及${catalina.home}/webapps/ROOT/WEB_INF下都有web.xml这个⽂件。
web.xml的⽂件格式定义在Servlet规范中,因此所有符合Servlet规范的Java Servlet Container都会⽤到它。
当tomcat部署应⽤程序时(在激活过程中,或加载应⽤程序后),它都会读取通⽤的conf/web.xml,然后再读取web应⽤程序中的WEB-INF/web.xml。
其实根据他们的位置,我们就可以知道,conf/web.xml⽂件中的设定会应⽤于所有的web应⽤程序,⽽某些web应⽤程序的WEB-INF/web.xml中的设定只应⽤于该应⽤程序本⾝。
如果没有WEB-INF/web.xml⽂件,tomcat会输出找不到的消息,但仍然会部署并使⽤web应⽤程序,servlet规范的作者想要实现⼀种能迅速并简易设定新范围的⽅法,以⽤作测试,因此,这个web.xml并不是必要的,不过通常最好还是让每⼀个上线的web应⽤程序都有⼀个⾃⼰的WEB-INF/web.xml。
系统web.xml详解<?xml version="1.0" encoding="GB2312"?><!--Web.xml依次定议了如下元素:<web-app><display-name></display-name> 定义了WEB应⽤的名字<description></description> 声明WEB应⽤的描述信息<filter></filter><filter-mapping></filter-mapping><servlet></servlet><servlet-mapping></servlet-mapping><session-config></session-config><welcome-file-list></welcome-file-list><taglib></taglib><resource-ref></resource-ref><security-constraint></security-constraint><login-config></login-config></web-app>在web.xml中元素定义的先后顺序不能颠倒,否则Tomcat服务器可能会抛出SAXParseException.--><!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" "/dtd/web-app_2_3.dtd"><web-app><display-name>Sample Application</display-name><description>This is a Sample Application</description><!--filter 配置Servlet过滤器filter-name 定义过滤器的名字。
tomcat配置文件详解(一):目录结构tomcat的目录结构如下:目录名简介bin 存放启动和关闭tomcat脚本conf 包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xmlwork 存放jsp编译后产生的class文件webapp 存放应用程序示例,以后要部署的应用程序也要放到此目录logs 存放日志文件lib/japser/common 这三个目录主要存放tomcat所需的jar文件(二):server.xml配置简介下面我们将讲述这个文件中的基本配置信息,更具体的配置信息见tomcat的文档元素名属性解释server port 指定一个端口,这个端口负责监听关闭tomcat的请求shutdown 指定向端口发送的命令字符串service name 指定service的名字Connector (表示客户端和service之间的连接) port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求minProcessors 服务器启动时创建的处理请求的线程数maxProcessors 最大可以创建的处理请求的线程数enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理connectionTimeout指定超时的时间数(以毫秒为单位)Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求) defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的Context (表示一个web应用程序,通常为WAR文件,关于WAR 的具体信息见servlet规范) docBase 应用程序的路径或者是WAR文件存放的路径path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/**** reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序host (表示一个虚拟主机) name 指定主机名appBase 应用程序基本目录,即存放应用程序的目录unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR 文件中运行应用程序Logger (表示日志,调试和错误信息) className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口prefix 指定log文件的前缀suffix 指定log文件的后缀timestamp 如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt Realm (表示存放用户名,密码及role的数据库) className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样) className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息directory 指定log文件存放的位置pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。
web.xml详解我们都知web项⽬的运⾏,通常会⾸先加载web.xml⽂件,但却对web.xml⽂件知之甚少,今天就来揭开它的⾯纱,⼀睹它的真容!⼀.web.xml是什么?web.xml是web项⽬的配置⽂件,⼀般的web⼯程都会⽤到web.xml来配置,主要⽤来配置Listener,Filter,Servlet等。
但需要注意的是:web.xml并不是必须的,⼀个web⼯程可以没有web.xml⽂件⼆.web项⽬加载web.xml过程Tomcat启动web项⽬时,web容器就会的加载⾸先加载web.xml⽂件,加载过程如下:1.web项⽬加载web.xml,读取context-param和listener这两个结点,2.创建⼀个ServletContext(Servlet上下⽂),整个项⽬会共享这个ServletContext3.容器将<context-param>转换为键值对,并交给ServletContext4.容器创建<listener>中的类实例,创建监听器三.web.xml元素详解⾸先是表明xml的使⽤版本。
<?xml version="1.0" encoding="UTF-8"?>web-app是web.xml的根元素,包含着web.xml所有⼦元素。
xmlns以及xmlns:xsi后⾯引进的连接是表明web.xml引进的模式⽂件,便能拥有该模式的相关功能。
<web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_1.xsd"version="3.1"></web-app>指明项⽬名称<display-name>web-SSMTest</display-name>web项⽬加载web.xml⾸先读取这两个结点,加载spring容器及创建spring监听器;ApplicationContext.xml 是spring 全局配置⽂件,⽤来控制spring 特性的ContextLoaderListener的作⽤就是启动Web容器时,⾃动装配ApplicationContext的配置信息。
web应⽤部署(Tomcat,springboot部署⽅式)核⼼内容1.在Tomcat中有四种部署Web应⽤的⽅式,分别是:(1)利⽤Tomcat⾃动部署(项⽬直接拷贝OR WAR包拷贝到webapps下)(2)利⽤控制台进⾏部署(tomcat的manager控制台的deploy区域)(3)增加⾃定义的Web部署⽂件(%Tomcat_Home%\conf\Catalina\localhost\AppName.xml)(4)⼿动修改%Tomcat_Home%\conf\server.xml⽂件来部署web应⽤2.SpringBoot WEB项⽬两种发布和部署⽅式(1)通过WAR包(2)通过JAR包(官⽹推荐)3.springboot有3中热部署⽅式:(1)使⽤springloaded配置pom.xml⽂件,使⽤mvn spring-boot:run启动(2)使⽤springloaded本地加载启动,配置jvm参数 -javaagent:<jar包地址> -noverify(3)使⽤devtools⼯具包,操作简单,但是每次需要重新部署1. Tomcat中有四种部署Web应⽤的⽅式第⼀种⽅式:利⽤Tomcat⾃动部署利⽤Tomcat⾃动部署⽅式是最简单的、最常⽤的⽅式。
若⼀个web应⽤结构为D:\workspace\WebApp\AppName\WEB-INF\*,只要将⼀个Web应⽤的WebContent级的AppName直接扔进%Tomcat_Home%\webapps⽂件夹下,系统会把该web应⽤直接部署到Tomcat中。
所以这⾥不再赘述。
第⼆种⽅式:利⽤控制台进⾏部署若⼀个web应⽤结构为D:\workspace\WebApp\AppName\WEB-INF\*,利⽤控制台进⾏部署的⽅式如下:进⼊tomcat的manager控制台的deploy区域——在Context path中键⼊"XXX"(可任意取名)——在WAR or Directory URL:键⼊D:\workspace\WebApp\AppName (表⽰去寻找此路径下的web应⽤)——点击deploy按钮。
Tomcat配置⽂件详解打开Tomcat的配置⽬录,我们会发现下⾯的配置⽂件:server.xml:Tomcat的主配置⽂件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;web.xml:遵循Servlet规范标准的配置⽂件,⽤于配置servlet,并为所有的Web应⽤程序提供包括MIME映射等默认配置信息;context.xml:所有host的默认配置信息;logging.properties:⽇志相关配置;tomcat-users.xml:Realm认证时⽤到的相关⾓⾊、⽤户和密码等信息;Tomcat⾃带的manager默认情况下会⽤到此⽂件;在Tomcat中添加/删除⽤户,为⽤户指定⾓⾊等将通过编辑此⽂件实现;catalina.policy:Java相关的安全策略配置⽂件,在系统资源级别上提供访问控制的能⼒,以安全模式启动Tomcat会使⽤这个配置catalina.properties:Tomcat内部package的定义及访问相关的控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此⽂件的相关设置;jaspic-providers.xml:⽤户认证配置⽂件这篇博客就来介绍下这⼏个配置⽂件的作⽤,以及常⽤的配置选项。
server.xml配置server.xml是Tomcat的主配置⽂件,可以对Service, Connector, Engine, Realm, Valve, Hosts等主组件进⾏相关配置。
<!-- port: 接收shutdown指令的端⼝,默认仅允许通过本机访问,默认为8005;shutdown:发往此Server⽤于实现关闭tomcat实例的命令字符串,默认为SHUTDOWN;使⽤⽅式:telnet localhost 8005,输⼊SHUTDOWN即可关闭tomcat如果你不配置这两个属性,Tomcat的这种关闭机制还是会运⾏的。
关键字: mime下载文件类型(转) tomcat web.xml 文件下载 TOMCAT在默认情况下下载.rar的文件是把文件当作text打开,以至于IE打开RAR文件为乱码,如果遇到这种情况时不必认为是浏览器的问题,大多数浏览器应该不会死皮赖脸地把二进制文件当作文本打开,一般都是服务器给什么浏览器就开什么.解决方法:打开conf/web.xml,加入下面的代码.<mime-mapping><extension>doc</extension><mime-type>application/msword</mime-type></mime-mapping><mime-mapping><extension>xls</extension><mime-type>application/msexcel</mime-type></mime-mapping><mime-mapping><extension>pdf</extension><mime-type>application/pdf</mime-type></mime-mapping><mime-mapping><extension>zip</extension><mime-type>application/zip</mime-type></mime-mapping><mime-mapping><extension>rar</extension><mime-type>application/rar</mime-type></mime-mapping><mime-mapping><extension>txt</extension><mime-type>application/txt</mime-type></mime-mapping><mime-mapping><extension>chm</extension><mime-type>application/mshelp</mime-type></mime-mapping>重启TOMCAT,清除IE缓存,再打开RAR的文件时就可以正常下载了. Trackback: /TrackBack.aspx?PostId=15274831.指定了自己的javaEncoding(参考 /staticcontent/html/sunone/app7/app7-dg-webapp/ch6/ch6-4.html <servlet><servlet-name>jsp</servlet-name><servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> <init-param><param-name>fork</param-name><param-value>false</param-value></init-param><init-param><param-name>javaEncoding</param-name><param-value>GB18030</param-value></init-param><init-param><param-name>xpoweredBy</param-name><param-value>true</param-value></init-param><load-on-startup>3</load-on-startup></servlet>2.添加rar,iso等的mime-type映射避免在浏览器里直接打开。
web.xml详解一、Web.xml详解:(一)web.xml加载过程(步骤)首先简单说一下,web.xml的加载过程。
当我们去启动一个WEB项目时,容器包括(JBoss、Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。
启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点:<listener></listener>和<context-param></context-param>。
紧接着,容器创建一个ServletContext(application),这个WEB项目所有部分都将共享这个上下文。
容器以<context-param></context-param>的name作为键,value作为值,将其转化为键值对,存入ServletContext。
容器创建<listener></listener>中的类实例,根据配置的class类路径<listener-class>来创建监听,在监听中会有contextInitialized(ServletContextEvent args)初始化方法,启动Web应用时,系统调用Listener的该方法,在这个方法中获得:ServletContext application =ServletContextEvent.getServletContext();context-param的值= application.getInitParameter("context-param的键");得到这个context-param的值之后,你就可以做一些操作了。
举例:你可能想在项目启动之前就打开数据库,那么这里就可以在<context-param>中设置数据库的连接方式(驱动、url、user、password),在监听类中初始化数据库的连接。
tomcat 过滤规则Tomcat的过滤规则可以通过配置web.xml文件来实现。
过滤器是Web应用程序中一种特殊的组件,用于对Web请求进行预处理或后处理。
以下是配置Tomcat过滤器的一般步骤:1. 在项目的WEB-INF目录下创建一个名为web.xml的文件(如果已存在,则直接打开)。
2. 在web.xml文件中的<web-app>标签中添加过滤器的配置。
示例如下:xml<filter><filter-name>MyFilter</filter-name><filter-class>com.example.MyFilter</filter-class></filter>3. 在web.xml文件中的<web-app>标签中添加过滤器映射的配置。
示例如下:xml<filter-mapping><filter-name>MyFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>上述示例中,过滤器名称为"MyFilter",过滤器类为com.example.MyFilter。
url-pattern指定了过滤器要处理的URL模式,"*"表示所有的URL。
4. 编写过滤器类com.example.MyFilter。
该类需要继承javax.servlet.Filter 接口,并实现doFilter方法。
在doFilter方法中可以编写具体的过滤逻辑。
示例如下:javaimport javax.servlet.*;import javax.servlet.http.HttpServletRequest;import java.io.IOException;public class MyFilter implements Filter {@Overridepublic void init(FilterConfig config) throws ServletException { 过滤器初始化时执行的代码}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 过滤逻辑代码HttpServletRequest httpRequest = (HttpServletRequest) request;对请求进行处理...将请求转发给下一个过滤器或Servletchain.doFilter(request, response);}@Overridepublic void destroy() {过滤器销毁时执行的代码}}在doFilter方法中,可以对请求进行处理,并通过调用chain.doFilter方法将请求转发给下一个过滤器或Servlet。
web.xml⽂件配置详解以及实例说明1、web.xml学名叫部署描述符⽂件,是在Servlet规范中定义的,是web应⽤的配置⽂件。
2、部署描述符⽂件就像所有XML⽂件⼀样,必须以⼀个XML头开始。
这个头声明可以使⽤的XML版本并给出⽂件的字符编码。
DOCYTPE 声明必须⽴即出现在此头之后。
这个声明告诉服务器适⽤的servlet规范的版本(如2.2或2.3)并指定管理此⽂件其余部分内容的语法的DTD(Document Type Definition,⽂档类型定义)。
所有部署描述符⽂件的顶层(根)元素为web-app。
请注意,XML元素不像HTML,他们是⼤⼩写敏感的。
因此,web-App和WEB-APP都是不合法的,web-app必须⽤⼩写。
web.xml样例:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application //EN" "/dtd/web-app_2_3.dtd"><web-app></web-app>3、web.xml中XML 元素不仅是⼤⼩写敏感的,⽽且它们还对出现在其他元素中的次序敏感。
例如,XML头必须是⽂件中的第⼀项,DOCTYPE声明必须是第⼆项,⽽web- app元素必须是第三项。
在web-app元素内,元素的次序也很重要。
服务器不⼀定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全拒绝执⾏含有次序不正确的元素的Web应⽤。
这表⽰使⽤⾮标准元素次序的web.xml⽂件是不可移植的。
元素顺序列表:元素标签详解:元素1:<icon>含义icon元素包含small-icon和large-icon两个⼦元素.⽤来指定web站台中⼩图标和⼤图标的路径.<small-icon>/路径/smallicon.gif</small-icon>small-icon元素应指向web站台中某个⼩图标的路径,⼤⼩为16 X 16 pixel,但是图象⽂件必须为GIF或JPEG格式,扩展名必须为:.gif或.jpg.<large-icon>/路径/largeicon-jpg</large-icon>large-icon元素应指向web站台中某个⼤图表路径,⼤⼩为32 X 32 pixel,但是图象⽂件必须为GIF或JPEG的格式,扩展名必须为; gif或jpg.范例<icon><small-icon>/images/small.gif</small-icon><large-icon>/images/large.gif</large-icon></icon>元素2、3:<display-name>,<description>含义<display-name>应⽤名称</display-name>定义应⽤的名称。
tomcat web.xml详解-11 定义头和根元素部署描述符文件就像所有XML文件一样,必须以一个XML头开始。
这个头声明可以使用的XML版本并给出文件的字符编码。
DOCYTPE声明必须立即出现在此头之后。
这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义)。
所有部署描述符文件的顶层(根)元素为web-app。
请注意,XML元素不像HTML,他们是大小写敏感的。
因此,web-App和WEB-APP都是不合法的,web-app必须用小写。
2 部署描述符文件内的元素次序XML 元素不仅是大小写敏感的,而且它们还对出现在其他元素中的次序敏感。
例如,XML头必须是文件中的第一项,DOCTYPE声明必须是第二项,而web- app元素必须是第三项。
在web-app元素内,元素的次序也很重要。
服务器不一定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全拒绝执行含有次序不正确的元素的Web应用。
这表示使用非标准元素次序的web.xml文件是不可移植的。
下面的列表给出了所有可直接出现在web-app元素内的合法元素所必需的次序。
例如,此列表说明servlet元素必须出现在所有servlet-mapping元素之前。
请注意,所有这些元素都是可选的。
因此,可以省略掉某一元素,但不能把它放于不正确的位置。
2.1 Iconicon元素指出IDE和GUI工具用来表示Web应用的一个和两个图像文件的位置。
2.2 display-namedisplay-name元素提供GUI工具可能会用来标记这个特定的Web应用的一个名称。
2.3 descriptiondescription元素给出与此有关的说明性文本。
2.4 context-paramcontext-param元素声明应用范围内的初始化参数。
2.5 filter过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。
2.6 filter-mapping一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。
2.7 listenerservlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。
Listener元素指出事件监听程序类。
2.8 servlet在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。
Servlet元素就是用来完成此项任务的。
2.9 servlet-mapping服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。
但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。
在更改缺省URL时,使用servlet-mapping元素。
2.10 session-config如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。
可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。
2.11 mime-mapping如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。
2.12 welcom-file-listwelcome-file-list元素指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。
2.13 error-pageerror-page元素使得在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。
2.14 taglibtaglib元素对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。
此功能使你能够更改TLD文件的位置,而不用编辑使用这些文件的JSP页面。
2.15 resource-env-refresource-env-ref元素声明与资源相关的一个管理对象。
2.16 resource-refresource-ref元素声明一个资源工厂使用的外部资源。
2.17 security-constraintsecurity-constraint元素制定应该保护的URL。
它与login-config元素联合使用2.18 login-config用login-config元素来指定服务器应该怎样给试图访问受保护页面的用户授权。
它与sercurity-constraint元素联合使用。
2.19 security-rolesecurity-role元素给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中。
分别地声明角色可使高级IDE处理安全信息更为容易。
2.20 env-entryenv-entry元素声明Web应用的环境项。
2.21 ejb-refejb-ref元素声明一个EJB的主目录的引用。
2.22 ejb-local-refejb-local-ref元素声明一个EJB的本地主目录的应用。
3 分配名称和定制的UL在web.xml中完成的一个最常见的任务是对servlet或JSP页面给出名称和定制的URL。
用servlet元素分配名称,使用servlet-mapping元素将定制的URL与刚分配的名称相关联。
3.1 分配名称为了提供初始化参数,对servlet或JSP页面定义一个定制URL或分配一个安全角色,必须首先给servlet或JSP页面一个名称。
可通过servlet元素分配一个名称。
最常见的格式包括servlet-name和servlet-class子元素(在web-app元素内),如下所示:<servlet><servlet-name>Test</servlet-name><servlet-class>moreservlets.TestServlet</servlet-class></servlet>这表示位于WEB-INF/classes/moreservlets/TestServlet的servlet已经得到了注册名Test。
给servlet一个名称具有两个主要的含义。
首先,初始化参数、定制的URL模式以及其他定制通过此注册名而不是类名引用此servlet。
其次,可在URL而不是类名中使用此名称。
因此,利用刚才给出的定义,URL http://host/webAppPrefix/servlet/Test 可用于http://host/webAppPrefix/servlet/moreservlets.TestServlet 的场所。
请记住:XML元素不仅是大小写敏感的,而且定义它们的次序也很重要。
例如,web-app元素内所有servlet元素必须位于所有servlet- mapping元素(下一小节介绍)之前,而且还要位于5.6节和5.11节讨论的与过滤器或文档相关的元素(如果有的话)之前。
类似地,servlet 的servlet-name子元素也必须出现在servlet-class之前。
5.2节”部署描述符文件内的元素次序”将详细介绍这种必需的次序。
例如,程序清单5-1给出了一个名为TestServlet的简单servlet,它驻留在moreservlets程序包中。
因为此servlet是扎根在一个名为deployDemo的目录中的Web应用的组成部分,所以TestServlet.class放在deployDemo/WEB- INF/classes/moreservlets中。
程序清单5-2给出将放置在deployDemo/WEB-INF/内的web.xml文件的一部分。
此web.xml文件使用servlet-name和servlet-class元素将名称Test与TestServlet.class相关联。
图5-1和图5-2分别显示利用缺省URL和注册名调用TestServlet时的结果。
程序清单5-1 TestServlet.javapackage moreservlets;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;/** Simple servlet used to illustrate servlet naming* and custom URLs.* <P>* Taken from More Servlets and JavaServer Pages* from Prentice Hall and Sun Microsystems Press,* /.* ? 2002 Marty Hall; may be freely used or adapted.*/public class TestServlet extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();String uri = request.getRequestURI();out.println(ServletUtilities.headWithTitle("Test Servlet") +"<BODY BGCOLOR=\"#FDF5E6\">\n" +"<H2>URI: " + uri + "</H2>\n" +"</BODY></HTML>");}}程序清单5-2 web.xml(说明servlet名称的摘录)<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd"><web-app><!-- … --><servlet><servlet-name>Test</servlet-name><servlet-class>moreservlets.TestServlet</servlet-class></servlet><!-- … --></web-app>3.2 定义定制的URL大多数服务器具有一个缺省的serlvet URL:http://host/webAppPrefix/servlet/packageName.ServletName。