配置文件一web.xml

前言

web.xml中标签的加载顺序:<context-param> > <listener> (spring的相关工作) > filter >servlet(springmvc的相关工作)

web.xml中spring的核心ContextLoaderListener初始化的上下文和springmvc的核心DispatcherServlet初始化的上下文关系

  1. ContextLoaderListener初始化的上下文加载的Bean是对于整个应用程序共享的? ?:一般如DAO层、Service层Bean;
  2. DispatcherServlet初始化的上下文加载的Bean只对Spring Web MVC有效的Bean,如Controller该初始化上下文应该只加载Web相关组件

javaEE项目启动过程:首先加载Spring上下文环境配置文件,然后加载SpringMVC配置文件。

spring和springMVC整合后,可以取消掉web.xml中spring的listener配置

  • 如果只有 Spring mvc 的一个 Servlet,listener 可以不用。
  • 但是如果用了Shiro 等,Shiro 用到的 Spring 的配置必须在 listener 里加载。
  • 一般 Dao, Service 的 Spring 配置都会在 listener 里加载,因为可能会在多个 Servlet 里用到,因为父子 Context 的可见性问题,防止重复加载所以在 listener 里加载。

配置详情

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1" metadata-complete="true">

    <!--默认欢迎页-->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <!-- 启动Spring容器,声明应用范围(整个WEB项目)内的上下文初始化参数 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <!--如果没有显式声明,则 系统默认 在WEB-INF/applicationContext.xml -->
        <param-value>classpath:spring/applicationContext.xml</param-value>
    </context-param>
    <!--ContextLoaderListener的作用:为项目提供了spring支持,初始化了Ioc容器。
        就是启动Web容器时,读取在contextConfigLocation中定义的xml文件,
        自动装配ApplicationContext的配置信息,并产生WebApplicationContext对象,然后将这个对象放置在ServletContext的属性里-->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- 配置spring字符编码为utf-8 -->
    <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>
        <!--参数forceEncoding的作用:
            以前只是对request字符编码起作用,现在如果将forceEncoding设为true也会影响到response中的字符编码-->
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>false</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 配置DispatcherServlet表示,该工程将采用springmvc的方式 -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 配置springMVC需要加载的配置文件 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/spring-mvc.xml</param-value>
        </init-param>
        <!-- 应用启动时,加载servlet -->
        <load-on-startup>1</load-on-startup>
        <!-- 支持异步处理 -->
        <async-supported>true</async-supported>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <!-- 默认匹配所有的请求 -->
        <url-pattern>/</url-pattern>
        <!-- 拦截Action -->
        <!--<url-pattern>*.do</url-pattern>-->
    </servlet-mapping>

    <!-- session 时间 -->
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

</web-app>

原文地址:https://www.cnblogs.com/loveer/p/11331290.html

时间: 2024-11-05 21:55:15

配置文件一web.xml的相关文章

spring的配置文件在web.xml中加载的方式

web.xml加载spring配置文件的方式主要依据该配置文件的名称和存放的位置不同来区别,目前主要有两种方式. 1.如果spring配置文件的名称为applicationContext.xml,并且存放在WEB-INF/目录下,那么只需要在web.xml中加入以下代码即可 <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> &

Spring项目的配置文件们(web.xml context servlet springmvc)

我们的spring项目目前用到的配置文件包括1--web.xml文件,这是java的web项目的配置文件.我理解它是servlet的配置文件,也就是说,与spring无关.即使你开发的是一个纯粹jsp页面的web项目,你也必须配置这个文件.我们的java web项目肯定写了很多servlet代码,这些servlet需要运行在servlet容器中,这个容器就是tomcat的重要组件.也就是,你的web项目需要运行在tomcat中,那么你必须提供一个web.xml文件作为配置文件.在这个文件中,通过

web.xml详解

web.xml的作用 web.xml,一个Tomcat工程中最重要的配置文件.web.xml没有其实也可以----只要你确定你的项目里面不需要任何过滤器.监听器.Servlet等等.我试了一下,没有web.xml对那些已经编译成Servlet的jsp页面来说,是不影响正常显示的,但是那些没有编译成Servlet的jsp页面,访问的时候就会报500的错误了.下面逐一看一下web.xml里常用标签的作用. welcome-file-list 这个标签是用来配置首页用的: <welcome-file-

【转】web.xml中的contextConfigLocation在spring中的作用

一.spring中如何使用多个xml配置文件 1.在web.xml中定义contextConfigLocation参数,Spring会使用这个参数去加载所有逗号分隔的xml文件,如果没有这个参数,spring会默认加载WEB-INF/applicationContext.xml文件(若没有,要新建一个). 例如: <context-param> <param-name>contextConfigLocation</param-name> <param-value&

怎样获得(读取)web.xml配置文件的参数

参考代码如下: com.atguigu.struts2.app.converters.DateConverter.java public DateFormat getDateFormat(){ if(dateFormat == null){ //获取当前 WEB 应用的初始化参数 pattern(该参数在WEB-INF下的web.xml文件中) //第一次用的时候获取,并加载相关的信息 //这种方法是使用/struts2-6/src/xwork-conversion.properties配置文件

Servlet 配置文件web.xml实验

我们的servlet为 import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ServletDemo1 extends HttpServlet{ pub

史上最全web.xml配置文件元素详解

一.web.xml配置文件常用元素及其意义预览 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description></description> 8 9 <!--context-param元素声明应用范围内的初始化参数--> 10 <context-param&g

如何获得(读取)web.xml配置文件的參数

參考代码例如以下: com.atguigu.struts2.app.converters.DateConverter.java public DateFormat getDateFormat(){ if(dateFormat == null){ //获取当前 WEB 应用的初始化參数 pattern(该參数在WEB-INF下的web.xml文件里) //第一次用的时候获取,并载入相关的信息 //这样的方法是使用/struts2-6/src/xwork-conversion.properties配

web.xml配置文件元素详解

一.web.xml配置文件常用元素及其意义 1 <web-app> 2 3 <!--定义了WEB应用的名字--> 4 <display-name></display-name> 5 6 <!--声明WEB应用的描述信息--> 7 <description></description> 8 9 <!--context-param元素声明应用范围内的初始化参数--> 10 <context-param>