zoukankan      html  css  js  c++  java
  • web 自定义监听器中设置加载系统相关的静态变量及属性

    直接上代码:

    在src下新建一个StartListener 实现接口ServletContextListener,:

    /**
     * @Title:StartListener.java
     * @Package:com.sgl.listener
     * @Description: TODO
     * @author Administrator  
     * @date 2015年9月14日 上午8:44:04 
     * @version   
     */
    package com.sgl.listener;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    
    /**
     * @author Administrator
     * 
     */
    public class StartListener implements ServletContextListener {
        //需要的静态资源
        private static Map<String, Object> valmap;
        /*
         * (non-Javadoc)
         * 
         * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.
         * ServletContextEvent)
         */
        @Override
        public void contextDestroyed(ServletContextEvent arg0) {
            // TODO Auto-generated method stub
        }
        /*
         * (non-Javadoc)
         * 
         * @see
         * javax.servlet.ServletContextListener#contextInitialized(javax.servlet
         * .ServletContextEvent)
         */
        @Override
        public void contextInitialized(ServletContextEvent arg0) {
            // TODO Auto-generated method stub
            //在web服务器初始化的时候讲资源文件进行初始换操作
            if (valmap == null) {
                valmap = new HashMap<String, Object>();
            }
            valmap.put("key1", "val1");
            valmap.put("key2", "val2");
            valmap.put("key3", "val3");
            System.out.println("监听器启动完成。。。。");
        }
    
        public static Map<String, Object> getMap() {
            return valmap;
        }
    }

    contextDestroyed:web服务器关闭时进行的操作,一般用于释放系统资源。

    contextInitialized:web服务器启动时进行的操作,一般用于加载系统的参数,包括一些配置的xml文件,日志文件,系统资源等。

    上面的例子中完成了对资源文件valmap的初始化工作,接下来我们通过访问jsp页面直接获取valmap中的值,下面是在index.jsp中的java代码:

    <body>
        <%
            Map<String, Object> map = StartListener.getMap();
            Set<String> keys = map.keySet();
            for (String key : keys) {
        %>
    
        key:<%=key%>---------<%=map.get(key)%>
    
        <%
            }
        %>
    </body>

    在地址栏中输入你的项目地址:例如:com.sgl.myweb/myweb/index.jsp

    结果:key:key3---------val3 key:key2---------val2 key:key1---------val1

    总结:我们在进行web系统开发时往往需要加载一些系统的习惯资源文件,以便于我们在后期的coding中访问使用。在启动web项目是我们通过监听器的初始换方法将我们需要的一些资源文件或者是数据直接加载到内存,这样可以很好的避免重复操作数据库而带来的性能问题。

  • 相关阅读:
    Hadoop的MapReduce基本框架
    通过idea测试Hadoop增删改查
    Linux系统简介以及基本操作(二)
    Linux系统简介以及基本操作(一)
    JAVA解除tomcat 对浏览器特别字符 | () {} [] 的限制
    JAVA实现读取图片
    用java实现取1-100之间的99个不重复的随机数 然后输出没有被取出的数字
    < Android Camera2 HAL3 学习文档 >
    算法<初级>
    算法<初级>
  • 原文地址:https://www.cnblogs.com/myadmin/p/4806265.html
Copyright © 2011-2022 走看看