1、web应用启动从web.xml开始,首先创建一个全局的上下文(Context),名字叫ServletContext,可以理解为一间图书馆,或一个数据结构(如map,但是比map牛多了),整个结构类似图书馆--》书架--》计算机类书籍--》某一本书

2、listener监听器开始
<!--spring的配置-->
<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener>

<!--spring bean配置文件加载-->
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value>classpath*:conf/applicationContext*.xml</param-value>
</context-param>

来到ContextLoaderListener监听,开始初始化并创建一个根上下文叫ApplicationContext,它是用来加载或者卸载spring管理的beans的,监听器会将它放进ServletContext中key为"org.springframework.web.context.WebApplicationContext.ROOT"的attribute中

3、 servlet开始初始化(filter先不讲),DispatcherServlet是springMVC的入口
<!--spring MVC的配置-->
<servlet> 
   <servlet-name>springmvc</servlet-name> 
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
      <init-param> 
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:conf/springmvc-servlet.xml</param-value> 
      </init-param>
      <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern> 
</servlet-mapping>
 DispatcherServlet创建自己的上下文,叫WebApplicationContext,并绑定到根上下文,以他为父亲,WebApplicationContext管理它里面的handlers,controllers,它存放在"org.springframework.web.servlet.FrameworkServlet.CONTEXT."+(servletname)的attribute中,开始加载他的配置文件

4、关于springMVC配置文件名称及路径问题
(1)不指定,则默认需要在/WEB-INF/路径下创建一个文件名为[servlet-name]加后缀"-servlet"的配置文件,上述配置文件为
springmvc-servlet.xml,默认路径为/WEB-INF/springmvc-servlet.xml
(2)指定文件名及路径有两种情况
a、放在src下,则指定路径写为classpath:conf/springmvc-servlet.xml,这里classpath指发布目录中的WEB-INF/classes,conf在src下一级文件夹,xml名可自己指定
b、放在WEB-INF文件夹下但自己指定xml名,则要写明路径为/WEB-INF/xxx.xml

接下来是springmvc单独的配置文件

第一篇:spring+springMVC项目启动最终笔记(一web.xml)的更多相关文章

  1. 用Eclipse 搭建一个Maven Spring SpringMVC 项目

    1: 先创建一个maven web  项目: 可以参照之前的文章:  用Maven 创建一个 简单的 JavaWeb 项目 创建好之后的目录是这样的; 2: 先配置maven  修改pom.xml & ...

  2. Spring/SpringMVC在启动完成后执行方法

    在某些情况下,有可能你会有这种需求:在Spring/SpringMVC项目中,当Spring/SpringMVC启动完成后,你需要执行一个方法来完成某些事件(比如创建网站地图,比如从订阅Redis服务 ...

  3. 让Spring Boot项目启动时可以根据自定义配置决定初始化哪些Bean

    让Spring Boot项目启动时可以根据自定义配置决定初始化哪些Bean 问题描述 实现思路 思路一 [不符合要求] 思路二[满足要求] 思路三[未试验] 问题描述 目前我工作环境下,后端主要的框架 ...

  4. spring boot 项目启动无任何反应

    遇到的问题 spring boot项目启动后无任何报错,ps有进程,nohub无日志 定位 更换jar包,问题依然存在,将jar包放到其他服务器,运行正常,排除打包问题 同服务器其他系统运行正常,但停 ...

  5. idea中添加web.xml配置文件与tomcat启动中遇到的web.xml文件找不到的问题

    1,如何在idea中向war项目中添加web.xml的配置文件 idea通过maven创建war项目时没有指定是webapp导致创建出来的项目没有webapp的文件夹.其实war项目中都是在" ...

  6. 利用eclipse新建的java web项目没有部署描述符web.xml文件怎么办?

    原文转自:http://blog.csdn.net/suyu_yuan/article/details/50947007 利用eclipse新建的Java Web项目没有部署描述符web.xml文件, ...

  7. Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览

    ​ ​本文是Spring Cloud专栏的第一篇文章,了解本篇文章内容有助于更好的理解后面文章 ​ 一.网站架构演变过程 1-1.传统架构 传统的SSH架构,分为三层架构 web控制层.业务逻辑层.数 ...

  8. SpringMVC——项目启动时从数据库查询数据

    SpringMVC项目中遇到这样的问题: 1.很多数据字典需要从数据库中查询: 2.懒得修改SQL语句: 3.想在项目中声明静态变量存储数据字典,但是希望这个字典可以在项目启动时进行加载. 当遇到这样 ...

  9. 在Intellij Idea中使用Maven创建Spring&SpringMVC项目

    环境及版本 Jetbrains Intellij Idea 15.0.6 Spring 4.1.6 JDK 1.8.0_20 Tomcat 8 Windows 10 从 Maven archetype ...

随机推荐

  1. shell脚本中关于日期的操作

    一.计算指定日期的前一天的日期 date -d "yesterday 20150401 " +%Y%m%d 二.如果获取当前日期的前一天        date -d " ...

  2. delphi xe10 手机内部系统相关操作(手机信息、震动、剪贴板、键盘、电话、拨号)

    //获取手机信息 function GetPhoneInfo(): string; Var TelephonyManager: JTelephonyManager; TelephonyServiceN ...

  3. delphi Sqlite

    Delphi中SQLite如何读写二进制字段(Blob类型) 在Delphi中,有大量的组件可以操作SQLite数据库,如UniDAC就是其中一个比较优秀的,当然还有ASQLite3Component ...

  4. SP2713 GSS4 - Can you answer these queries IV(线段树)

    传送门 解题思路 大概就是一个数很少次数的开方会开到\(1\),而\(1\)开方还是\(1\),所以维护一个和,维护一个开方标记,维护一个区间是否全部为\(1/0\)的标记.然后每次修改时先看是否有全 ...

  5. redis笔记--------Jedis使用

    redis安装和启动就不说了 一.准备工作 1.redis -cli -p 6379 2.eclipse中新建项目,并导入jedis相关包 3.测试jedis连通性 二.Jedis常用API (哈希) ...

  6. LeetCode 196. Delete Duplicate Emails (删除重复的电子邮箱)

    题目标签: 题目给了我们一个 email 的表格,让我们删除重复的. 建立Person p1,Person p2,当email 相同时,而且 p1 id 要大于 p2 id 时候,删除这一行. Jav ...

  7. 《DSP using MATLAB》Problem 8.44

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  8. capserjs-prototype(中)

    evaluateOrDie() 具体样式: evaluateOrDie(Function fn[, String message, int status]) Evaluates an expressi ...

  9. .Net串口通讯中的若干问题(C#多串口硬件识别、热插拔、Close方法报错问题、IsOpen的可靠性问题)

    一.需求场景 最近有时间静下心来研究SDK,串口通讯的.要求实现识别cp210x和cp2303驱动的两款硬件,并且2303的优先级高,即有2303识别之,没有再识别210x:要求实现热插拔,拔掉自动断 ...

  10. C# 创建DataTable并添加行和列

    DataTable dt=new DataTable dt.Columns.Add("numview", typeof(Int32)); dt.Columns.Add(" ...