当我们做一个java项目时,有几个功能都须要载入servlet或者实现某个共同的方法,尽管我们一味地在每个功能中依次载入也不是不能够,可是当某个servlet 或者方法被频繁地载入和应用。我们将面向对象的思想置于不顾却也真的说只是去。

所以。对于这类的servlet我们须要在Tomcat启动时直接载入,比方初始化信息、读取配置文件等需求时,我们就能够通过web.xml的配置文件对来实现这个需求:

首先,AbstractItemServlet 类中封装了相应的Init方法:

<span style="font-family:FangSong_GB2312;font-size:18px;">package com.bjpowernode.drp.util.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet; import com.bjpowernode.drp.util.BeanFactory; /**
*
* 负责系统在server启动时初始化
* @author chao
*
*/
public class InitServlet extends HttpServlet { @Override
public void init() throws ServletException {
System.out.println("创建BeanFactory。。。 。。");
//将抽象工厂放到servletContext中
BeanFactory beanFactory = BeanFactory.getInstance();
this.getServletContext().setAttribute("beanFactory", beanFactory);
} }</span>

其次。在项目的配置文件web.xml(路径为:/WebRoot/WEB-INF/web.xml)中对抽象出来的servlet进行配置:

<span style="font-family:FangSong_GB2312;font-size:18px;">      <!-- 设置tomcat一启动就运行InniServlet -->
<servlet>
<servlet-name>InitServlet</servlet-name>
<servlet-class>com.bjpowernode.drp.util.servlet.InitServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet></span>

这样就能够实如今Tomcat启动时调用com.bjpowernode.drp.util.servlet.InitServlet的init()方法。

当中。<load-on-startup>N</load-on-startup> 的含义是:标记容器是否在启动的时候就载入这个servlet。当值为0或者大于0时。表示容器在应用启动时就载入这个servlet。当是一个负数时或者没有指定时。则指示容器在该servlet被选择时才载入。正数的值越小,启动该servlet的优先级越高。

有了这种方法,我们既能够省去每次调用该方法的运行时间和占用空间,又能够完美地实现面向对象的思想。

那我们又何乐而不为呢?

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWVNDMTEyMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" width="600" height="375" alt="">

Tomcat启动时载入某个servlet的更多相关文章

  1. 在Tomcat启动时直接创建servlet(二)

  2. tomcat启动时自动运行代码

    原文链接:http://jingpin.jikexueyuan.com/article/49660.html 作者: 一直向北 发布时间:2015-07-13 11:12:13 方法1:tomcat ...

  3. Tomcat启动时自动加载Servlet

    1.想做一个服务启动时自动启动一不停止的获取订阅功能 2.之前是做一个Jsp页面请求servlet来触发方法 3.现在实现Tomcat启动时自动加载Servlet 1.Tomcat中启动Servlet ...

  4. Tomcat启动时项目反复载入,导致资源初始化两次的问题

    近期在项目开发測试的时候,发现Tomcat启动时项目反复载入,导致资源初始化两次的问题  导致该问题的解决办法: 例如以下图:在Eclipse中将Server Locations设置为"Us ...

  5. Tomcat启动时自动加载一个类

    有时候在开发Web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法. 可以 ...

  6. Tomcat启动时为什么要配置CATALINA_HOME环境变量??

    CATALINA_HOME的值被设为Tomcat的安装目录,如果环境变量CATALINA_HOME已经存在,则通过这个环境变量调用bin目录下的“catalina.bat start”命令 1.Tom ...

  7. 如何在tomcat启动时自动加载一个类

    有时候在开发web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法. 可以 ...

  8. tomcat启动时自动加载一个类 MyServletContextListener

    目的: 我们知道在tomcat启动后,需要页面请求进行驱动来执行操作接而响应.我们希望在tomcat启动的时候能够自动运行一个后台线程,以处理我们需要的一些操作.因此需要tomcat启动时就自动加载一 ...

  9. 在tomcat启动时解析xml文件,获取特定标签的属性值,并将属性值设置到静态变量里

    这里以解析hibernate.cfg.xml数据库配置信息为例,运用dom4j的解析方式来解析xml文件. 1.在javaWeb工程里新建一个java类,命名为GetXmlValue.java,为xm ...

随机推荐

  1. preg_match_all匹配网络上文件

    <?php$ssa=file_get_contents("http://www.oschina.net/code/snippet_4873_5256");preg_match ...

  2. Cookie、Token与Session介绍(非原创)

    文章大纲 一.Cookie介绍二.Token介绍三.Session介绍四.Token.Cookie与Session比较五.参考文章   一.Cookie介绍 1. Cookie是什么 cookie机制 ...

  3. Android开发中的日期格式化

    下面的转换符来自Java,但是在android中同样可用.(以下表格内容来自互联网.) 常见日期格式化转换符 转换符 说 明 示 例 %te  一个月中的某一天(1-31)  2 %tb  指定语言环 ...

  4. 解决emlog默认导航不能修改的问题以及修改后台登录地址的方法

    修改默认导航 我们需要使用修改代码的方式来解决 首先找到admin/navbar.php文件 然后找到需要删除的几行代码: if ($type != Navi_Model::navitype_cust ...

  5. MTK刷机工具Flash_Tool部分4032错误解决办法

    MTK刷机工具Flash_Tool部分4032错误解决办法 先说明一点,这个办法不是万能的,我测试解决了以下两种情况下的4032: 1.本来正常的开发板,因为一次刷机失败后就一直变4032了 2.新开 ...

  6. 【Linux】七种文件类型

    Linux中的七种文件类型 d 目录文件. l 符号链接(指向另一个文件). s 套接字文件. b 块设备文件,二进制文件. c 字符设备文件. p 命名管道文件. - 普通文件

  7. jquery radio、 checkbox、 select 操作

    转载:http://www.haorooms.com/post/checkandselect $("input[id^='code']");//id属性以code开始的所有inpu ...

  8. (转)基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用

    http://www.cnblogs.com/wuhuacong/p/4774396.html Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,使 ...

  9. js取最值:

    取最值是很常见的一种运算,各个语言都会遇到这个问题.Js中,如果简单的进行取最值,完全没必要自己写一个比较函数,原生的js就提供了方法.这些方法都属于Math 对象(引用w3c:Math 对象并不像 ...

  10. 学习网址Collect

    Laravel 学院    https://laravelacademy.org/wx小程序 https://developers.weixin.qq.com/miniprogram/dev/quic ...