java web.xml文件_Java Web中web.xml文件简单介绍

1、XML 声明和根元素

48304ba5e6f9fe08f3fa1abda7d326ab.png

……

48304ba5e6f9fe08f3fa1abda7d326ab.png

和所有xml类型的文件一样,第一行是 XML 声明,它定义 XML 的版本 (1.0) 和所使用的编码 (UTF-8)。

第二行的“DOCYTPE”声明必须紧跟在XML 声明之后,这个声明会告诉服务器适用的servlet规范的版本(如2.3),并指定管理此文件其余部分内容的语法的DTD(Document Type Definition即文档类型定义)。

第三行的标签就是此文件的根元素,web.xml文件的最主要的配置信息就包含在这个标签之内,接下来重点介绍的就是这个标签包含的内容。xml文件不仅对大小写敏感,而且还对出现在其他元素中的次序敏感。所以标签的大小写一定要使用正确,而且XML声明必须是文件中的第一项,DOCTYPE声明必须是第二项,而web- app元素必须是第三项。同样在web-app元素内,元素的次序也很重要。

2、Web 应用配置

48304ba5e6f9fe08f3fa1abda7d326ab.png

/images/small_icon.gif

/images/large_icon.gif

WEB

WEB Example

name

value

description

48304ba5e6f9fe08f3fa1abda7d326ab.png

标签指出IDE和GUI工具用来表示Web应用的大图标和小图标的位置。

标签指出此Web应用的应用名称。

顾名思义就是对此Web应用的一些描述信息。

声明此应用范围内的初始化参数,这些参数可在servlet类中通过getServletContext().getInitParameter(“name”)方法获取。

3、filter过滤器

48304ba5e6f9fe08f3fa1abda7d326ab.png

MyFilter

com.filter.MyFilter

MyFilter

/main.jsp

MyFilter

/addProduct.jsp

48304ba5e6f9fe08f3fa1abda7d326ab.png

标签内部配置过滤器,标签指定此过滤器的名字,标签指定此过滤器指向的类(MyFilter),此类必须实现javax.servlet.Filter接口。标签用来关联一个或多个servlet或jsp页面(/main.jsp和/addProduct.jsp)。注意无论有多少,他们的必须与前面的名字一致。

4、listener监听器

com.channel.http.SessionListener

标签指定监听器,用于监听Web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等等。

5、servlet(很重要)

48304ba5e6f9fe08f3fa1abda7d326ab.png

yqzl

com.channel.http.servlet.MainServlet

contextConfigLocation

/WEB-INF/config/springmvc-config.xml

1

yqzl

*.action

48304ba5e6f9fe08f3fa1abda7d326ab.png

标签用于指定此Web应用的servlet相关配置,这个配置相当重要。标签指定此servlet的名字,指定servlet的类,这个类开发者可以自己写,一般会继承HttpServlet类,用来初始化整个Web项目和接受http请求并处理。标签里面可以配置一些参数。

标签指定当前Web应用启动时装载Servlet的次序,它的内容必须是整数,当这个数>=0时,容器会按数值从小到大依次加载。如果数值<0或没有指定,容器将在用户首次访问时加载这个servlet类。标签可定义servlet映射,里面的必须与前面的名字一致,指定servlet映射的路径。

在用Tomcat启动整个web项目时,当配置了标签并且里面的数字>=0时,会加载此servlet类,创建类的实例,调用init()方法初始化标签里面的配置信息,此初始化在整个servlet生命周期中只会进行一次。如果未配置标签或数字<0时,Tomcat启动时不会加载此servlet类,当然也就不会调用init()方法进行初始化,当用户首次访问时会加载类并初始化,所以此时第一次访问时可能会加载很慢。这里仅简单介绍标签的作用,以后我会详细介绍这个servlet类以及与其相关的几个比较重要的类和接口。

6、session配置

10

标签用于设置浏览器与服务器之间会话(交互)时长的间隔,以分钟为单位。用户访问Web项目时,会与服务器之间建立一个session,当用户长时间未与服务器信息交互而超过这个时长时,服务器会销毁这个session,释放占用的内存空间,当用户再次在原来的session访问时会失效,需要重新建立新的session。除了可以设置这个标签之外,还可通过HttpSession的setMaxInactiveInterval()方法设置单个会话对象的超时值。

7、欢迎页配置

48304ba5e6f9fe08f3fa1abda7d326ab.png

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

48304ba5e6f9fe08f3fa1abda7d326ab.png

当用户访问Web应用时,如果仅给出Web应用的根访问URL,没有指定具体的文件名,容器会调用 标签里指定的文件。里允许有多个元素,每个元素代表一个文件。容器会按顺序寻找,先找第一个文件是否存在,如果存在则会把这个文件显示出来,不再寻找其他文件。如果不存在则寻找第二个文件,依次类推。如果所有文件都不存在,则抛出404错误。

8、其他配置

下面的这几项配置,笔者在开发中目前还没遇到过,不是特别了解,这里就不做过多解释,以免引起错误。这些内容都是参考 https://www.cnblogs.com/hafiz/p/5715523.html 的内容,有兴趣可以去这篇博客去看。

如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。

在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。

对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。此功能使你能够更改TLD文件的位置,而不用编辑使用这些文件的JSP页面。

声明与资源相关的一个管理对象。

声明一个资源工厂使用的外部资源。

制定应该保护的URL。它与login-config元素联合使用。

指定服务器应该怎样给试图访问受保护页面的用户授权。它与sercurity-constraint元素联合使用。

给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中,分别地声明角色可使高级IDE处理安全信息更为容易。

声明Web应用的环境项。

声明一个EJB的主目录的引用。

声明一个EJB的本地主目录的应用。

以上基本上涵盖了配置web.xml文件所需要的元素以及对这些元素简单的介绍,不同元素配置的基本顺序大致如此。其中、、、、、、、、这几项是笔者在开发过程中遇到最多的,尤其是和servlet相关的配置个人认为是重中之重。所以接下来的几篇中我会详细介绍servlet类以及与其相关的几个比较重要的类和接口。这些内容也是笔者根据实际工作以及参考一些资料总结而来的,当然其中难免有些错误或者遗漏,欢迎大家指正,我也在不断学习不断提高。

下面是完整的web.xml文件配置。

48304ba5e6f9fe08f3fa1abda7d326ab.png

/images/small_icon.gif

/images/large_icon.gif

WEB

WEB Example

name

value

description

MyFilter

com.filter.MyFilter

MyFilter

/main.jsp

MyFilter

/addProduct.jsp

com.channel.http.SessionListener

yqzl

com.channel.http.servlet.MainServlet

contextConfigLocation

/WEB-INF/config/springmvc-config.xml

1

yqzl

*.action

10

index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

48304ba5e6f9fe08f3fa1abda7d326ab.png

你可能感兴趣的:(java,web.xml文件)