web.xml常用标签详解 您所在的位置:网站首页 web常用标签大全 web.xml常用标签详解

web.xml常用标签详解

2023-08-26 19:16| 来源: 网络整理| 查看: 265

这次主要整理下JavaWeb开发过程中所用的配置文件web.xml,web.xml的作用以及常用标签的含义

一、web.xml的作用

web.xml主要用于配置web项目启动时加载的信息,例如

welcome-file-list 用来配置欢迎页context-param 用来配置初始参数listener 用来配置监听器filter 用来配置过滤器servlet 用来配置servlet实例 二、web.xml标签详解 用于声明xml的版本以及xml传输数据时的字符编码

1、web-app

xml文件的根标签,用于声明命名空间、schema约束等 xmlns="http://java.sun.com/xml/ns/javaee" XML Namespaces,声明了命名空间,用于避免命名冲突,有疑惑的小伙伴可以点击这里xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" XML Schema Instance,声明了web.xml所需要遵循的xml规范 (xsi只是一个别名,可以自行定义,不过约定俗成使用xsi来表示)xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" schemaLocation 是xsi的一个子元素,所以以 xsi:schemaLocation 来命名,它由一个 URI引用对 组成,两个URI之间以 空白符 分隔。第一个URI是 命名空间的名字,第二个URI是 模式文档的位置,模式处理器将从这个位置读取模式文档声明了 XML Namespace和对应的 XSD(Xml Schema Definition) 文档的位置,实际上就是声明了该命名空间对应的具体模板是哪个

2、icon

当使用GUI(Graphic User Interface)工具时, 用于指定web应用的图标,拥有两个字子标签,只支持 gif 和 jpg 格式 小图标为 16*16像素 大图标为 32*32像素 /images/xxx.jpg /images/xxx.jpg

3、display-name

当使用GUI(Graphic User Interface)工具时,用于指定web应用的名称 xxxxxxxxxxxxxxx

4、description

用于描述web应用的相关信息 xxxxxxxxxxxxxxx

5、distributable

如果在web.xml中指定该标签,则表示应用程序已经可以部署在分布式的servlet容器中了,即此应用程序可以在多个实例之间分发servlet及会话只要看web.xml中是否出现该标签,就可以判断web项目是否具有分布式的功能

6、context-param

初始化参数,应用与整个web项目,有两个子标签 可以理解为map中的key 可以理解为map中的value在容器启动时,会创建一个 ServletContext(上下文对象,也可以理解为web应用环境对象),然后会去读取 context-param 标签,容器会将 param-name 和 param-value 的值以 key-value 的形式set进ServletContext中在servlet中,通过 this.getServletContext().getInitParameter(“key”) 来获取值value key value

7、filter

过滤器,可以对目标资源的请求和响应进行过滤,主要用于 过滤字符编码,当然你可以自定义过滤器,来处理自己的业务逻辑 过滤器名称,与下文提到的 filter-mapping 标签的 filter-name 相对应 过滤器类的完整类名 filter类的初始化参数,有两个子标签 可以理解为map中的key 可以理解为map中的value在filter中,通过 (request.getServletContext().getInitParameter(“key”); 来获取值value,注意:此处的request为 ServletRequest

8、filter-mapping

过滤器的映射,与 filter 标签搭配使用,且必须先配置 filter 再配置 filter-mapping,有两个子标签 过滤器名称,与上文提到的 filter 标签的 filter-name 相对应 映射路径,所有符合该模式的URL都会应用于该过滤器

Spring提供的字符编码过滤器

encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding false encodingFilter *.do encoding UTF-8 设置编码格式为UTF-8forceEncoding false 若为true,则表示强制设置 response 的编码与 request 一致以下是 CharacterEncodingFilter 的源码,当 forceEncoding 为 true 时,会短路 request.getCharacterEncoding() == null,从而设置 respond 的编码与 request 一致 这里写图片描述encodingFilter *.do 此处表示将所有以 .do 结尾的请求,使用UTF-8编码

9、listener

监听器,可以用来监听客户端的请求,服务端的操作等,常用的监听器有 ServletContext 监听器 ServletContextListener 用于对整个Servlet上下文在 创建、销毁 时进行监听ServletContextAttributeListener 用于对Servlet上下文属性的 增删改 操作进行监听Session 监听器 HttpSessionListener 用于对Session在 创建、销毁 时进行监听HttpSessionAttributeListener 用于对Session属性的 增删改 操作进行监听Request 监听器 ServletRequestListener 用于对Request在 创建、销毁 时进行监听ServletRequestAttributeListener 用于对Request属性的 增删改 操作进行监听

10、servlet

用来声明一个servlet数据,常用的有以下几个子标签 servlet名称,与下文提到的 servlet-mapping 标签的 servlet-name 相对应 servlet类的完整类名 servlet类的初始化参数,有两个子标签 可以理解为map中的key 可以理解为map中的value 当web应用启动时,用于指定加载servlet的顺序 当值 大于等0 时,web容器会按照值大小 从小到大 顺序加载 当值 为负或未定义 时,web容器会在首次访问该servlet时加载它在servlet中,通过 this.getInitParameter(“key”) 来获取值value

11、servlet-mapping

servlet的映射,与 servlet 标签搭配使用,且必须先配置 servlet 再配置 servlet-mapping,有两个子标签 servlet名称,与上文提到的 servlet 标签的 servlet-name 相对应 映射路径,使用该路径可以访问到想要访问的 servlet,可自行定义 myServlet com.lala.servlet.Login key value myServlet /servlet/abc 在页面上,通过简单的form表单就可以访问到对应的servlet

12、session-config

设置 session 超时时间,单位为分钟 30

13、welcome-file-list

设置欢迎页,若不设置则会默认访问 WEB-INF 下的 index.html 页面 index1.html index2.html index3.html 当访问项目时,容器会按顺序依次搜索页面,如果有对应的页面存在,则显示该页面,若都没匹配到,则会报404错误

14、error-page

设置错误页,当404或500或指定异常时可以跳转至指定页面,有三个子标签 错误码,例如 404, 500等 异常类型,例如 java.lang.NullPointerException(空指针异常) 用来设置错误页 404 /error_404.html java.lang.NullPointerException /error_null.html

此外,如果文章有什么错误之处,还请小伙伴们指出来,我会及时更正的



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有