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项目是我们通过监听器的初始换方法将我们需要的一些资源文件或者是数据直接加载到内存,这样可以很好的避免重复操作数据库而带来的性能问题。

  • 相关阅读:
    eclipse如何导入项目
    CBC和CTR解密模式——C++实现
    安装java之后没有jre目录
    对称密钥解密——C++方法
    使用Eclipse时一些报错
    C/C++文件I/O操作
    获取string的长度
    新建ftp快捷方式
    一些IT书籍
    C语言获得数组长度的函数
  • 原文地址:https://www.cnblogs.com/myadmin/p/4806265.html
Copyright © 2011-2022 走看看