首页 > 其他分享 >tomcat启动时,加载类

tomcat启动时,加载类

时间:2023-04-20 16:04:44浏览次数:31  
标签:xml web tomcat 启动 元素 ServletContextListener servlet 加载


有时候在开发Web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法。 可以采用在WEB-INF/web.xml中添加一个监听程序(ServletContextListener配置项),步骤如下:
1) 增加一个监听程序 MyServletContextListener.java,实现javax.servlet.ServletContextListener接口

package test.startup; 


 import javax.servlet.ServletContextEvent; 

 import javax.servlet.ServletContextListener; 


 public class MyServletContextListener implements ServletContextListener 

 { 


 public void contextDestroyed(ServletContextEvent arg0) 

 { 


 } 


 public void contextInitialized(ServletContextEvent arg0) 

 { 

 System.out.println("加载业务字典"); 

 try 

 { 

 com.eos.common.dict.DictMap.loadData(); 

 } 

 catch(Exception e) 

 { 

 System.out.println("加载业务字典失败!"); 

 e.printStackTrace(); 

 } 

 } 

 }



2) 配置监听器web.xml:

<listener>
<listener-class>test.startup.MyServletContextListener</listener-class>
</listener>


注意:应用事件监听器程序是建立或修改servlet环境或会话对象时通知的类。它们是servlet规范的版本2.3中的新内容。注册一个监听程序涉及在 web.xml的web-app元素内放置一个listener元素。虽然listener元素的结构很简单,但请不要忘记,必须正确地给出web- app元素内的子元素的次序。listener元素位于所有的servlet 元素之前以及所有filter-mapping元素之后。此外,因为应用生存期监听程序是serlvet规范的2.3版本中的新内容,所以必须使用 web.xml DTD的2.3或以后版本,而不是2.2版本,如下:

<web-app id="WebApp_ID" version="2.4" 

 xmlns="http://java.sun.com/xml/ns/j2ee" 

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

 ... 

 </web-app>

标签:xml,web,tomcat,启动,元素,ServletContextListener,servlet,加载
From: https://blog.51cto.com/u_2465818/6209762

相关文章

  • GitLab 服务的启动、停止和重启命令
    GitLab服务的启动、停止和重启命令 一、问题现象在使用GitLab管理项目代码时,有时候可能因为服务出现异常,导致无法正常访问GitLab上的代码。报错如下: 二、解决方案重启GitLab服务,命令如下:gitlab-ctlrestart命令执行效果如下: 三、补充说明 1、GitLab......
  • ArcGIS API for JavaScript 4.x加载GeoServer发布的WMTS服务
    前言 以前用OpenLayers加载GeoServer我记得很简单,现在用ArcGISAPI加载捣鼓了一天没搞好,第二天早上来参考一篇文章搞好了,我这纯属记录下。背景 客户没有ArcGISServer的许可,所以就只能用GeoServer发布或者离线切片,先研究下GeoServer,后面如果心情好再研究下离线切片。......
  • 无界微前端(wujie):element-ui 弹框内使用select组件,弹出框位置异常解决方案 (主程序加载
    https://wujie-micro.github.io/doc/guide/ element-ui弹框内使用select组件,弹出框位置异常解决方案第一步:在子应用中: 以上3步就好啦!!!是不是很简单这个框架坑很多,希望对大家有帮助!!! ......
  • tomcat多域名配置
    评:TOMCAT的域名配置现在很多的公司的网站都是用tomcat作为应用服务区的,可是对于初学者,8080端口号是如何去掉的,这些网站是如何和域名绑定到一起的呢?一个tomcat是如何绑定多域名?并且这些域名是如何对应不同的项目呢?而且我的服务器没放在机房,放在我的本地,我应该如何把我的服务器......
  • ThreadLocal在Tomcat环境应用问题
    评:ThreadLocal的使用在Tomcat的服务环境下要注意,并非每次web请求时候程序运行的ThreadLocal都是唯一的..ThreadLocal的绳命周期不等于一次Request的绳命周期..ThreadLocal与线程对象紧密绑定的,由于Tomcat使用了线程池,线程是可能存在复用情况...1.ThreadLocal可以用于存放与......
  • tomcat6启动报错java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileH
    评:tomcat6启动报错在apache-tomcat-6.0.26/logs/catalina.out日志里面报错:java.lang.ClassNotFoundException:1catalina.org.apache.juli.FileHandler这个是由于apache-tomcat-6.0.26/bin/catalina.sh文件被修改过了,应该把下面的一行放在-Djava.util.logging.manager的前......
  • IDEA 启动tomcat6项目
    目录IDEA启动tomcat6项目导入项目配置项目配置tomcatIDEA启动tomcat6项目接到一个老项目要做达梦数据库适配,老项目用的spring+hibernate,前端用jsp展示,之前用的eclipse开发,eclipse好多年没用了,用IDEA启动。导入项目一路next到底,注意选择对应jdk,我这用的是jdk6配置项目添加......
  • Linux安装nacos并配置开机启动
    一、Nacos的安装、启动1.解压tar-zxvfnacos-server-1.4.1.tar.gz-C/usr/local注意:nacos的启动需要java的jdk环境支持才能成功运行。2.启动进入目录nacos解压包的bin目录:cd/usr/local/nacos/bin开启./startup.sh非集群模式开启:./startup.sh-mstandalone关闭......
  • jar启动文件
    #!/usr/bin/envbashAPP_NAME=pt-resource-web.jarLOG_FILE=/log/console_log/pt-resource-web.logFILE_PATH=/home/application/oceandata/pt_resource/#使用说明,用来提示输入参数usage(){echo"Usage:sh执行脚本.sh[start|stop|restart|status]"exit1}#检查程序......
  • 每周一坑-mongo每次启动后莫名关闭
    每周一坑-mongo每次启动后莫名关闭今天这个问题搞了大半天。。。明天找开发确认下功能是否已恢复正常。无意中发现某项目用完阿里云整个2T的oss对象存储,大家都知道,用完额度,超过的部分就会从用户余额去扣费。按道理来说,买的2T针对项目程序上传来说是够的,也不太可能从这里......