Tomcat启动时加载某个servlet
2015-06-29 16:03
645 查看
当我们做一个java项目时,有几个功能都需要加载servlet或者实现某个共同的方法,虽然我们一味地在每一个功能中依次加载也不是不可以,但是当某个servlet 或者方法被频繁地加载和应用,我们将面向对象的思想置于不顾却也真的说不过去。
所以,对于这类的servlet我们需要在Tomcat启动时直接加载,比如初始化信息、读取配置文件等需求时,我们就可以通过web.xml的配置文件对来实现这个需求:
首先,AbstractItemServlet 类中封装了对应的Init方法:
其次,在项目的配置文件web.xml(路径为:/WebRoot/WEB-INF/web.xml)中对抽象出来的servlet进行配置:
这样就可以实现在Tomcat启动时调用com.bjpowernode.drp.util.servlet.InitServlet的init()方法。
其中,<load-on-startup>N</load-on-startup> 的含义是:标记容器是否在启动的时候就加载这个servlet。当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;当是一个负数时或者没有指定时,则指示容器在该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的优先级越高。
有了这个方法,我们既可以省去每次调用该方法的执行时间和占用空间,又可以完美地实现面向对象的思想。那我们又何乐而不为呢?
相关文章推荐
- Tomcat服务器配置文件uri编码设置
- 解决nginx中proxy_pass到tomcat的session丢失问题
- Tomcat6.0/7.0配置admin web应用程序
- eclipse中tomcat能正常启动,但是浏览器访问不了tomcat首页 问题解决
- apache-tomcat-7.0.11无法进入Manager管理App项目
- Tomcat配置域名详细步骤
- 关于linux下tomcat启动出现cannot find ./catalina.sh以及cannot find setclasspath问题的解决办法
- Linux 搭建Tomcat8080端口被占用
- Tomcat 6、7在EL表达式解析时存在的一个Bug
- Ubuntu命令行安装JDK & Tomcat (
- 使用tomcat的compression来提高网页加载速度
- tomcat 6.x下ssi(即让tomcat支持shtml)配置
- apache tomcat 8.0 显示目录文件
- Tomcat无法启动org.eclipse.jst.jee.server:xxx' did not find a matching property
- tomcat部署 java.lang.OutOfMemoryError: PermGen space
- Tomcat --> Cannot create a server using the selected type
- WEB_容器_tomcat_本地运行源码_审
- Tomcat原理
- tomcat 内存溢出.
- 一键重启tomcat