从这个例子中,学习到很多,之前也遇到过这种问题可能是没有注意总结,呵呵,真有点惋惜~做一个笔记以提醒自己,下次遇到类似的需求可以借鉴此种方法,学习其中的优势。因为,之前做过一些JSP 、Servlet的项目,但只是在web.xml中配置一些基本的servlet信息,其它的一些关于servlet的配置没有使用过,其实它的其它配置还是很强大的,如果运用灵活在项目中就非常方便了。 用Servlet实现在服务器启动的时候就去初始化一些数据,主要分为两步: 1、建一个Servlet类,重写其init和destroy方法(注意,这里不需要重写doGet/doPost方法,因为我们并不是需要用servlet作请求) public class myInitializeServlet extends HttpServlet { @Override public void destroy() { // TODO Auto-generated method stub super.destroy(); } @Override public void init() throws ServletException { //这里就在初始化的时候连接数据库 FruitManager fruitManager = (FruitManager) ApplicationContextHolder .getBean("fruitManager"); List<dict>fruitList = fruitManager.findAll();</dict> //这里要做到的一个目的是:把[ruitList]集合中的数据分类别先放在一个List集合中,然后再把此List放到Map里,以供在页中显示 //如下所示fruitMap集合 Map<String, List<fruit>> fruitMap = null;</fruit> if (null != fruitList && fruitList.size() > 0) { fruitMap = new HashMap<String, List<fruit>>();</fruit> for (Fruit fruit: fruitList) { if (null != fruit) { String category = fruit.getCategory(); //认真理解并在以后的程序中使用[不用那么麻烦,2步就搞定] List<fruit>list = fruitMap.get(category);</fruit> if (null == list) { list = new ArrayList<fruit>();</fruit> } list.add(fruit); fruitMap.put(category, list); } } } //把查询出来的数据保存起来,然后在项目中用 getServletContext().setAttribute(Constants.APPLICATION_KEY_DICT_MAP, dictMap); super.init(); } } 2、Servlet完成以后,就需要在web.xml中配置(让程序启动的时候就调用此servlet,初始化数据)--关于Servlet的配置有很多,可多查阅查阅相关文档 <servlet></servlet> <servlet-name>myInitializeServlet</servlet-name> <servlet-class>com.system.util.myInitializeServlet</servlet-class> <load-on-startup>1</load-on-startup><!--这里的配置表示:此Servlet第一个执行(当项目中有多个初始化的Servlet的时候)--> <servlet-mapping></servlet-mapping> <servlet-name>myInitializeServlet</servlet-name> <url-pattern>/myInitializeServlet</url-pattern> 两步都完成以后,就可以启动程序,可以在日志里面看到初始化的数据信息。