我想在容器启动时预先读入一些数据,为所有jsp页面共享

解决方案 »

  1.   

    public class ActionInit() extends ActionServlet{
        public void init()throws Exception{
           super.init();
           this.preload();
        }
        public void preload(){
          this.getServletContext().setAttribute("init", "初始化装载数据");
        }
    }
    web.xml中更改
    <servlet-name>action</servlet-name>
    <servlet-class>packagename.ActionInit</servlet-class>
    jsp页面可以用<%String str=(String)application.getAttribute("init");%>得到"初始化装载数据"
      

  2.   

    写一个类MyClass,实现ServletContextListener接口,并在web.xml中写上 <listener>
    <listener-class>com.mypackage.MyClass</listener-class>
    </listener>
    在容器启动时就会调用你的类中的contextInit...方法了
      

  3.   

    楼主用的是struts码?
    如果是struts那么它的扩展方式是很多的。
    非侵入性的扩展应该是可取的。就是给struts加一个plugin
    在plugin里加载数据,数据可以存放到session里。
    这样做得好处是没有修改它的基础类,不需要这一部分时只需要
    修改配置文件,改动量小,灵活。