1. mvc入门详解: 点击打开链接

2.1 web.xml简介

1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点。

2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。

3. 容器以<context-param></context-param>的name作为键,value作为值,将其转化为键值对,存入ServletContext。

4. 容器创建<listener></listener>中的类实例,根据配置的class类路径<listener-class>来创建监听,在监听中会有contextInitialized(ServletContextEvent args)初始化方法,启动Web应用时,系统调用Listener的该方法,在这个方法中获得:

ServletContext application = ServletContextEvent.getServletContext();

context-param的值 = application.getInitParameter("context-param的键"); 得到这个context-param的值之后,你就可以做一些操作了。

5. 举例:你可能想在项目启动之前就打开数据库,那么这里就可以在<context-param>中设置数据库的连接方式(驱动、url、user、password),在监听类中初始化数据库的连接。这个监听是自己写的一个类,除了初始化方法,它还有销毁方法,用于关闭应用前释放资源。比如:说数据库连接的关闭,此时,调用contextDestroyed(ServletContextEvent args),关闭Web应用时,系统调用Listener的该方法。

6. 接着,容器会读取<filter></filter>,根据指定的类路径来实例化过滤器。

7. 以上都是在WEB项目还没有完全启动起来的时候就已经完成了的工作。如果系统中有Servlet,则Servlet是在第一次发起请求的时候被实例化的,而且一般不会被容器销毁,它可以服务于多个用户的请求。所以,Servlet的初始化都要比上面提到的那几个要迟。

8. 总的来说,web.xml的加载顺序是:<context-param>-><listener>-><filter>-><servlet>。其中,如果web.xml中出现了相同的元素,则按照在配置文件中出现的先后顺序来加载。

9. 对于某类元素而言,与它们出现的顺序是有关的。以<filter>为例,web.xml中当然可以定义多个<filter>,与<filter>相关的一个元素是<filter-mapping>,注意,对于拥有相同<filter-name>的<filter>和<filter-mapping>元素而言,<filter-mapping>必须出现在<filter>之后,否则当解析到<filter-mapping>时,它所对应的<filter-name>还未定义。web容器启动初始化每个<filter>时,按照<filter>出现的顺序来初始化的,当请求资源匹配多个<filter-mapping>时,<filter>拦截资源是按照<filter-mapping>元素出现的顺序来依次调用doFilter()方法的。<servlet>同<filter>类似,此处不再赘述。

2.2 web.xml标签详解

https://blog.csdn.net/believejava/article/details/43229361

web学习2--理解MVC及快速入门相关推荐

  1. SpringMVC:学习笔记(1)——理解MVC及快速入门

    SprigMVC-理解MVC及快速入门 说明: 传统MVC-->JSPModel2-->Front Controller + Application Controller + Page C ...

  2. Python学习笔记--10.Django框架快速入门之后台管理admin(书籍管理系统)

    Python学习笔记--10.Django框架快速入门之后台管理 一.Django框架介绍 二.创建第一个Django项目 三.应用的创建和使用 四.项目的数据库模型 ORM对象关系映射 sqlite ...

  3. python多久能上手_小白学习Python,怎样能够快速入门上手

    原标题:小白学习Python,怎样能够快速入门上手 时至今日,Python已经成为最受欢迎的编程语言之一,清晰易读,适用广泛.在TIOBE 排行榜中位居第四,成为名副其实的人工智能第一语言. 那么零基 ...

  4. geotools学习(一)IntelliJ快速入门

    title: 'geotools学习(一)IntelliJ快速入门' date: 2021-04-29 14:08:52 tags: [] published: true hideInList: fa ...

  5. Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  6. Spring MVC 4快速入门Maven原型已改进

    Spring Boot使Spring入门非常容易. 但是仍然有人对不使用Spring Boot并以更经典的方式引导应用程序感兴趣. 几年前,我创建了一个原型(早于Spring Boot),简化了引导S ...

  7. JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  8. Redis学习笔记①基础篇_Redis快速入门

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

  9. UE4学习笔记1st:编程快速入门

    UE4学习笔记1st:编程快速入门 今天我开始学习虚幻4游戏引擎,为了此我专门买了新的电脑,我将主要配置写在这里,有想学习的同学可以参考 显卡:丽台K620 CPU:E3-1230-V3 主板:b85 ...

最新文章

  1. 快速识别Hash加密方式hashid
  2. ASP.NET跨页面传值技巧
  3. c语言修仙受控可看吗,强推三本神奇到爆的小说,c语言修仙,程序员与修真会擦出什么火花...
  4. 单链表头插法与尾插法的c语言实现(回顾)
  5. 阿里云 EMR Delta Lake 在流利说数据接入中的架构和实践
  6. topcoder srm 661 div1
  7. Allure2--自动化测试报告生成
  8. Newton Raphson算法
  9. c++规定浮点数输出格式
  10. python 释放内存_python深入之python内存管理机制(重点)
  11. [生存志] 第54节 武经七书司马法
  12. 【课程设计】 推箱子游戏(源码+详解)
  13. 五万字 | Flink知识体系保姆级总结
  14. centos 安装kermit
  15. AI遮天传 DL-CNN
  16. 关于office2016卸载后注册表残留无法重新安装问题解决
  17. 【11g体系结构,4】AMM(内存分配自动管理)
  18. 建一个手机网站到底需要多少钱
  19. repeater控件 php,JavaScript Repeater模板控件
  20. 嵌入式软件工程师是前端还是后端_嵌入式软件工程师与软件工程师的区别

热门文章

  1. 前端学习(2019)vue之电商管理系统电商系统处理attr参数
  2. 前端学习(970):fastclick插件使用
  3. 前端学习(848):为什么学习节点操作和节点简介
  4. 前端学习(46):页面导入样式时,使用link和@import有什么区别?
  5. 30jquery-qrcode生成二维码
  6. 实例37:python
  7. CM3计算板安装硬件时钟DS3231
  8. JavaScript toLocaleString()时间转化为字符串
  9. shell语法 06-Linux文本处理-grep
  10. Linux之Ubuntu下安装屏幕录像软件(SimpleScreenRecorder)【摘抄】