1. web.xml 作用
启动一个web工程的时候,容器(Tomcat、Jboss)会先读取 web.xml,处理 web.xml 里定义的配置,比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等!
2. 各个节点的作用
2.1 context-param
<context-param> <param-name>webAppRootKey</param-name> <param-value>coffeeTest</param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.xml</param-value> </context-param> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:coffeeTest-application.xml </param-value> </context-param>
context-param 的配置以 key-value 对读入内存
2.2 listener
<listener> <listener-class> org.springframework.web.util.Log4jConfigListener </listener-class> </listener> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener>
监听器,基于 Servlet 规范中的 Listener,用于监听 web 应用程序中的 ServletContext, HttpSession 和 ServletRequest 等域对象的创建与销毁事件,以及监听这些域对象中的属性发生修改的事件。
2.3 filter
<filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
过滤器,基于 Servlet 规范中的 Filter,通过 Filter,对 web 服务器管理的所有 web 资源:例如 JSP、Servlet、静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
2.4 servlet
<servlet> <servlet-name>coffeeTest-dispatch</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-default.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>coffeeTest-dispatch</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>
基于 Servlet 规范中的 HttpServlet,通过 url-pattern 匹配对应的请求转到 servlet-class 中配置的 servlet 类,可以用于扩展,处理业务逻辑。
2.5 welcome
<welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list>
欢迎页面
3. 加载顺序
-
启动一个 web 项目的时候,容器会去读它的配置文件 web.xml 读两个节点 listener 和 context-param
- 紧接着,容器创建一个 ServletContext ,这个 web 项目所有部分都将共享这个上下文
- 容器将 context-param 转化为 K-V 对,并交给 ServletContext
-
容器按 web.xml 中定义的顺序初始化 Listener 中的类实例,即创建监听器
-
容器按 web.xml 中定义的顺序初始化 Filter 中的类实例,即创建过滤器
- 容器按 web.xml 中定义的顺序初始化 Servlet 中的类实例
相关推荐
通过对`web.xml`文件的详细分析,我们可以看出它是Web应用配置的关键所在。正确地配置`web.xml`不仅可以帮助我们更好地组织和管理Web应用,还能显著提高开发效率和维护性。因此,深入理解每个配置项的作用及其应用...
本文将讲述如何在 web.xml 文件中使用 `<error-page>` 元素来设置错误处理页面,并结合实验结果,分析 JSP 的基本语法和错误处理机制。 web.xml 文件的 `<error-page>` 元素 在 JavaWeb 应用程序中,web.xml 文件...
进一步分析错误日志,我们可以看到,Jboss抛出了一个 Duplicate throwable nesting of same base type的警告,这提示我们Jboss在解析web.xml文件时遇到了问题。 解决方案 要解决Failed to parse WEB-INF/web.xml; ...
### web.xml文件中配置(servlet, spring, filter, listener)的加载顺序 在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如...
### Web.xml配置详解 #### 一、Web.xml概述 `web.xml` 文件是Java Web应用程序的核心配置文件之一,主要用于配置应用程序级别的各种初始化参数、监听器、过滤器、Servlet映射等。通过`web.xml`,开发者可以灵活地...
标题 "Spring全注解project示例 (无web.xml配置)" 提供了我们即将探讨的核心主题:一个使用Spring框架,完全依赖注解配置的项目,且没有传统的web.xml部署描述符。这种配置方式在现代Spring应用中非常常见,因为它...
在这个例子中,我们将详细分析给出的`web.xml`片段,探讨其中的关键配置元素。 1. **欢迎文件**: `<welcome-file-list>`元素定义了当用户访问应用的根目录时应显示的默认页面。在这个例子中,如果用户输入`...
【Servlet与web.xml详解】 Servlet是Java EE标准中的一部分,用于构建动态Web应用程序。Tomcat作为Servlet容器,它遵循Servlet规范来运行和管理Servlet。在Servlet中,有以下几个关键概念: 1. **Listener(监听器...
### Servlet中Web.xml详解 #### 一、概述 在Servlet技术中,`web.xml`文件起着至关重要的作用。作为Web应用程序的核心配置文件之一,它主要用于定义Servlet容器如何加载和配置Servlet及其相关组件。本文将深入探讨...
在Java开发中,导出Excel文件并以网页方式打开是一个常见的需求,特别是在Web应用程序中,例如数据分析、报表生成等场景。下面将详细讲解如何通过Java实现这个功能,并结合`web.xml`配置进行优化。 首先,Java导出...
在探讨Struts2.5中的`web.xml`配置时,我们首先需要理解`web.xml`在Java Web应用中的角色以及它如何与Struts框架交互。`web.xml`是Java Web应用的核心配置文件之一,用于定义应用程序级别的配置信息,如过滤器、监听...
`weblogic.xml` 文件是 WebLogic Server 应用服务器中专门用于自定义和配置部署在该服务器上的 Web 应用程序的一个重要配置文件。它允许开发人员和系统管理员针对 WebLogic Server 的特定特性进行定制设置,以满足...
"webservice"则指的是Web服务,它是通过互联网进行通信的一种方式,XML-RPC是实现Web服务的一种技术手段。 压缩包子文件"axis-jaxrpc-1.4.jar"是Apache Axis的一个组成部分,Axis是一个开源的Web服务工具包,它支持...
### WebLogic部署到MyEclipse后web.xml的问题分析与解决 #### 问题概述 在将Web应用程序通过MyEclipse部署到WebLogic服务器时遇到`web.xml`格式错误的问题。具体表现为:部署过程中提示`web.xml`文件格式不正确(`...
通过以上对`web.xml`文件的详细分析,我们可以看到`web.xml`在Java Web开发中的核心地位。它是配置Web应用的核心文件,通过合理地配置各个元素,开发者可以灵活地控制Web应用的行为和功能。掌握`web.xml`的配置细节...
### Web.xml中的Listen知识点详解 ...通过上述分析可以看出,`web.xml`中的监听器不仅可以帮助我们加载Spring配置文件,还可以实现更灵活的功能,如监听自定义Java类等。这对于扩展Web应用的功能非常有用。
本文将对Web.xml配置文件的各个元素进行详细的解释和分析。 1. `<web-app>`元素 `<web-app>`元素是Web.xml配置文件的根元素,用于定义Web应用程序的所有配置信息。 2. `<display-name>`元素 `<display-name>`元素...
本篇文章将详细讲解如何通过使用`web.xml`配置文件来实现Filter过滤器,以实现对网站访问量的统计。这种方法是Java Web应用中的经典实践,适用于传统的基于Servlet的项目。 首先,我们需要了解Filter的基本概念。...
这个监听器是基于Servlet容器(如Tomcat、Jetty等)的,当Web应用启动时,它会读取配置文件(通常是`web.xml`),创建并加载ApplicationContext。如果在这个过程中遇到问题,比如`ClassNotFoundException`,那通常...