zoukankan      html  css  js  c++  java
  • web.xml加载过程

    1、容器读取web.xml配置文件的两个节点: <listener></listener>和<context-param></context-param>

    2、容器创建ServletContext(即application),这个上下文将被Web项目的所有部分共享

    3、<context-param></context-param>的name作为键,value作为值,键值对存入ServletContext

    4、容器创建<listener></listener>的类实例,再根据listener-class创建监听器,

    监听器的初始化方法为:contextInitialized(ServletContextEvent args),ServletContextEvent,顾名思义可知监听上下文事件,

    在启动应用时,系统会调用此方法,此方法中有:ServletContextapplication=ServletContextEvent.getServletContext();获取上下文,

    这样,我们可以通过:application.getInitParameter("context-param的键");来获取键值,并完成一些操作

    举例如下:

    如果想在项目启动之前就打开数据库,可先在<context-param>中设置数据库的连接方式(驱动、url、user、password)等,再创建类实例,创建监听器,在监听器中获取这些参数并初始化数据库的连接。

    这个监听类,除了初始化方法,它还有销毁方法,可用于关闭应用前释放资源。比如:说数据库连接的关闭,此时,调用contextDestroyed(ServletContextEvent args),关闭Web应用时,系统会调用Listener的该方法。

    5、容器读取<filter></filter>,根据指定的类路径来实例化过滤器(类似于listener)。

    以上为容器还没有完全启动时就完成的工作

    6、Servlet在第一次发起请求时被实例化。

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

  • 相关阅读:
    五、批量插入
    四、操作BLOB类型字段
    三、使用PreparedStatement实现CRUD操作
    二、获取数据库连接
    一、JDBC概述
    最短平均码长(挑出假硬币问题的解法)
    信息量和信息熵
    洛谷P2114
    Servlet续(HttpServletRequest类和HttpServletResponse类)
    Servlet
  • 原文地址:https://www.cnblogs.com/yanze/p/10374411.html
Copyright © 2011-2022 走看看