在Servlet规范中定义了web.xml文件,它是Web应用的配置文件,Web.xml文件是和Web容器无关的。通过Web.xml文件可以配置Servlet类和url的映射、欢迎列表、过滤器以及安全约束条件等。
回头看一下HelloKittyJsp 和HelloKittyServlet的例子,为什么在HelloKittyJsp页面中Form的action为HelloKittyServlet,而Web容器会执行HelloKittyServlet类呢?它们之间的关系是通过名字进行映射的吗?其实不是,也就是说action的值可以为任何符合规范的字符串。把WEB页面Form中的action指定到具体的Servlet响应类是通过Web.xml文件进行配置的。
例如HelloKittyJsp 和HelloKittyServlet的例子,在Web.xml文件中加入如下的URL(WEB页面Form中Action指定的其实是一个URL)到Servlet的映射关系,如下代码所示。
web.xml
<?xml version="1.0" encoding="UTF-8"?>
/FONT>
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
HelloKittyServlet
com.free.servlet.HelloKittyServlet
HelloKittyServlet
/HelloKittyServlet
元素定义内容为URL(url-pattern)到Servlet名字(servlet-name)的映射关系,元素定义内容为Servlet名字(servlet-name)到Servlet实现类(servlet-class)的映射关系。通过这种方式,Form中的Action(即响应的URL)就可以映射到具体的Servlet类了。
Web.xml文件是一个XML文件,开头几行往往是固定的,它定义了该文件的字符编码、XML的版本以及作为验证的DTD文件。Web.xml中的顶层元素为,其它所有的子元素都必须定义在内。
Web.xml文件中的元素不仅是大小写敏感的,而且它还对出现在其中元素的次序敏感。例如,XML头必须是文件中的第一项,DOCTYPE声明必须是第二项,而元素必须是第三项。在元素内,元素的次序也很重要。服务器不一定强制要求这种次序,但它可能(实际上有些服务器就是这样做的)拒绝执行含有次序不正确的元素的Web应用。这表示使用非标准元素次序的web.xml文件是不可移植的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13081368/viewspace-440439/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13081368/viewspace-440439/