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

  • 相关阅读:
    Day18:继续添加前端代码
    Day17:今天为前端做的几件小事
    Day16:接口调试完成&紧急转前端开发
    Day25:报告编写等
    Day24:结论的撰写&&openid再次尝试
    Day23:个人小结的撰写&&对coderunner的熟悉
    Day22:数据库导入&分工&准备科研训练
    Day21:尝试脱离相同ip连接
    Day20:update功能的实现
    Day19:代码整合等
  • 原文地址:https://www.cnblogs.com/myadmin/p/4806265.html
Copyright © 2020-2023  润新知