Web容器啟動過程中如何執(zhí)行Java類
1.監(jiān)聽(Listener)
<!-- 配置監(jiān)聽 -->
<listener>
<listener-class>com.xian.jdbc.GetProperties</listener-class>
</listener>
package com.xian.jdbc;
public class GetProperties{
} //implements ServletContextListener
可實現(xiàn)servlet的監(jiān)聽則啟動中直接運行輸出。不實現(xiàn)也有作用。。未知
2.spring初始化bean時
1、在需要進行操作的bean的xml定義中加上init-method屬性,指定下啟動時運行哪個方法;
2、實現(xiàn)InitializingBean接口,Spring在啟動時會自動調用這個接口中的初始化方法
public class SysInitBean implements InitializingBean,ServletContextAware{public void afterPropertiesSet() throws Exception {//初始化代碼 }}<span style="background-color: rgb(226, 226, 226); "> </span>
實現(xiàn)InitializingBean接口就可以獲取spring的所有配置信息。
實現(xiàn)ServletContextAware,可以獲得servletcontext
3.servlet的init()方法
自動執(zhí)行servlet
寫一個servlet,在init()方法中寫好想要執(zhí)行的程序,
同時,在web.xml配置文件中指出
<servlet>
<servlet-name>XXXX</servlet-name>
<servlet-class>XXXX</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
load-on-startup的值必須為整數(shù),當load-on-startup值為負整數(shù)或者未指定時,容器在該servlet被調用時加載
當其值為0和正整數(shù)時,容器啟動時加載,值越小,優(yōu)先級越高
Web.xml加載順序:
1 、啟動一個 WEB 項目的時候, WEB 容器會去讀取它的配置文件 web.xml ,讀取 <listener> 和 <context-param> 兩個結點。
2 、緊急著,容創(chuàng)建一個 ServletContext ( servlet 上下文),這個 web 項目的所有部分都將共享這個上下文。
3 、容器將 <context-param> 轉換為鍵值對,并交給 servletContext 。
4 、容器創(chuàng)建 <listener> 中的類實例,創(chuàng)建監(jiān)聽器。
由此,可以看出, web.xml 的加載順序是: context-param -> listener -> filter -> servlet ,而同個類型之間的實際程序調用的時候的順序是根據(jù)對應的 mapping 的順序進行調用的。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java實現(xiàn)多數(shù)據(jù)源的幾種方式總結
這篇文章主要給大家總結介紹了關于Java實現(xiàn)多數(shù)據(jù)源的幾種方式,最近項目中的工作流需要查詢多個數(shù)據(jù)源的數(shù)據(jù),數(shù)據(jù)源可能是不同種類的,需要的朋友可以參考下2023-08-08當事務Transactional遇見異步線程出現(xiàn)的坑及解決
這篇文章主要介紹了當事務Transactional遇見異步線程出現(xiàn)的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12