`
等牛奶的咖啡
  • 浏览: 7467 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

web.xml 分析

    博客分类:
  • web
 
阅读更多

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. 加载顺序

  1. 启动一个 web 项目的时候,容器会去读它的配置文件 web.xml 读两个节点 listener 和 context-param

  2. 紧接着,容器创建一个 ServletContext ,这个 web 项目所有部分都将共享这个上下文
  3. 容器将 context-param 转化为 K-V 对,并交给 ServletContext
  4. 容器按 web.xml 中定义的顺序初始化 Listener 中的类实例,即创建监听器

  5. 容器按 web.xml 中定义的顺序初始化 Filter 中的类实例,即创建过滤器

  6. 容器按 web.xml 中定义的顺序初始化 Servlet 中的类实例
分享到:
评论

相关推荐

    web.xml配置文件详解

    通过对`web.xml`文件的详细分析,我们可以看出它是Web应用配置的关键所在。正确地配置`web.xml`不仅可以帮助我们更好地组织和管理Web应用,还能显著提高开发效率和维护性。因此,深入理解每个配置项的作用及其应用...

    在web.xml中设置错误处理页面.docx

    本文将讲述如何在 web.xml 文件中使用 `&lt;error-page&gt;` 元素来设置错误处理页面,并结合实验结果,分析 JSP 的基本语法和错误处理机制。 web.xml 文件的 `&lt;error-page&gt;` 元素 在 JavaWeb 应用程序中,web.xml 文件...

    Jboss启动报Failed to parse WEB-INFweb.xml; - nested throwable错误

    进一步分析错误日志,我们可以看到,Jboss抛出了一个 Duplicate throwable nesting of same base type的警告,这提示我们Jboss在解析web.xml文件时遇到了问题。 解决方案 要解决Failed to parse WEB-INF/web.xml; ...

    web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序

    ### web.xml文件中配置(servlet, spring, filter, listener)的加载顺序 在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如...

    Web.xml配置详解

    ### Web.xml配置详解 #### 一、Web.xml概述 `web.xml` 文件是Java Web应用程序的核心配置文件之一,主要用于配置应用程序级别的各种初始化参数、监听器、过滤器、Servlet映射等。通过`web.xml`,开发者可以灵活地...

    Spring全注解project示例 (无web.xml配置)

    标题 "Spring全注解project示例 (无web.xml配置)" 提供了我们即将探讨的核心主题:一个使用Spring框架,完全依赖注解配置的项目,且没有传统的web.xml部署描述符。这种配置方式在现代Spring应用中非常常见,因为它...

    web.xml sample

    在这个例子中,我们将详细分析给出的`web.xml`片段,探讨其中的关键配置元素。 1. **欢迎文件**: `&lt;welcome-file-list&gt;`元素定义了当用户访问应用的根目录时应显示的默认页面。在这个例子中,如果用户输入`...

    Tomcat(二) Tomcat实现:Servlet与web.xml介绍 以及 源码分析Tomcat实现细节1

    【Servlet与web.xml详解】 Servlet是Java EE标准中的一部分,用于构建动态Web应用程序。Tomcat作为Servlet容器,它遵循Servlet规范来运行和管理Servlet。在Servlet中,有以下几个关键概念: 1. **Listener(监听器...

    Servlet中Web.xml详解

    ### Servlet中Web.xml详解 #### 一、概述 在Servlet技术中,`web.xml`文件起着至关重要的作用。作为Web应用程序的核心配置文件之一,它主要用于定义Servlet容器如何加载和配置Servlet及其相关组件。本文将深入探讨...

    java 导出Excel文件 网页方式打开 web.xml配置

    在Java开发中,导出Excel文件并以网页方式打开是一个常见的需求,特别是在Web应用程序中,例如数据分析、报表生成等场景。下面将详细讲解如何通过Java实现这个功能,并结合`web.xml`配置进行优化。 首先,Java导出...

    struts2.5 web.xml配置

    在探讨Struts2.5中的`web.xml`配置时,我们首先需要理解`web.xml`在Java Web应用中的角色以及它如何与Struts框架交互。`web.xml`是Java Web应用的核心配置文件之一,用于定义应用程序级别的配置信息,如过滤器、监听...

    weblogic.xml配置详解

    `weblogic.xml` 文件是 WebLogic Server 应用服务器中专门用于自定义和配置部署在该服务器上的 Web 应用程序的一个重要配置文件。它允许开发人员和系统管理员针对 WebLogic Server 的特定特性进行定制设置,以满足...

    javax.xml.rpc

    "webservice"则指的是Web服务,它是通过互联网进行通信的一种方式,XML-RPC是实现Web服务的一种技术手段。 压缩包子文件"axis-jaxrpc-1.4.jar"是Apache Axis的一个组成部分,Axis是一个开源的Web服务工具包,它支持...

    weblogic部署到myeclipse后web.xml的问题

    ### WebLogic部署到MyEclipse后web.xml的问题分析与解决 #### 问题概述 在将Web应用程序通过MyEclipse部署到WebLogic服务器时遇到`web.xml`格式错误的问题。具体表现为:部署过程中提示`web.xml`文件格式不正确(`...

    web.xml的详解

    通过以上对`web.xml`文件的详细分析,我们可以看到`web.xml`在Java Web开发中的核心地位。它是配置Web应用的核心文件,通过合理地配置各个元素,开发者可以灵活地控制Web应用的行为和功能。掌握`web.xml`的配置细节...

    web.xml中的listen

    ### Web.xml中的Listen知识点详解 ...通过上述分析可以看出,`web.xml`中的监听器不仅可以帮助我们加载Spring配置文件,还可以实现更灵活的功能,如监听自定义Java类等。这对于扩展Web应用的功能非常有用。

    Web.xml配置文件[文].pdf

    本文将对Web.xml配置文件的各个元素进行详细的解释和分析。 1. `&lt;web-app&gt;`元素 `&lt;web-app&gt;`元素是Web.xml配置文件的根元素,用于定义Web应用程序的所有配置信息。 2. `&lt;display-name&gt;`元素 `&lt;display-name&gt;`元素...

    Web后端开发-使用Filter过滤器技术,实现访问量统计-方法二使用web.xml配置的方式

    本篇文章将详细讲解如何通过使用`web.xml`配置文件来实现Filter过滤器,以实现对网站访问量的统计。这种方法是Java Web应用中的经典实践,适用于传统的基于Servlet的项目。 首先,我们需要了解Filter的基本概念。...

    java解决org.springframework.web.context.ContextLoaderListener

    这个监听器是基于Servlet容器(如Tomcat、Jetty等)的,当Web应用启动时,它会读取配置文件(通常是`web.xml`),创建并加载ApplicationContext。如果在这个过程中遇到问题,比如`ClassNotFoundException`,那通常...

Global site tag (gtag.js) - Google Analytics