• 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中出现了相同的元素,则按照在配置文件中出现的先后顺序来加载

  • 相关阅读:
    PHP:第一章——PHP中的goto语句和
    PHP:第二章——PHP中的foreach语句
    Swingr的JTextField、JPasswordField设置圆角输入框
    Jtabbedpane设置透明、Jpanel设置透明
    去掉utf-8的Bom头:使用java以及jdbc不使用第三方库执行sql文件脚本
    使用java以及jdbc不使用第三方库执行sql文件脚本
    JButton ButtonClickTest
    Md5加密
    JButton变换样式
    grub2详解(翻译和整理官方手册)
  • 原文地址:https://www.cnblogs.com/yanze/p/10374411.html
Copyright © 2020-2023  润新知