前阵子一直在搞前端结果搞得自己所学的java相关知识丢得一干二净。现在重新捡起来的时候,遇到N多问题,所以做笔记先。
这次项目中遇到我想搞清楚的小问题,就是项目加载后一些配置文件的读取,也就是启动的时候就将一些配置读到内存中以待使用。
使用servlet来初始化配置文件数据:
在servlet的配置当中,<load-on-startup>1</load-on-startup>的含义是:
标记容器是否在启动的时候就加载这个servlet。
当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;
当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。
正数的值越小,启动该servlet的优先级越高。
web.xml:
- <servlet>
- <servlet-name>StartServlet</servlet-name>
- <servlet-class>com.xtown.web.StartServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
servlet代码:
- public class StartServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- public void init() throws ServletException {
- JDBServlet is = new JDBServlet();
- is.ConfigFile = this.getClass().getClassLoader()
- .getResourceAsStream("conf.xml"); //将文件转换为输入流
- is.start(); //设置从配置文件里读取过来的数据
- String contextPath = getServletContext().getServletContextName();
- if (contextPath.endsWith("/"))
- contextPath = contextPath.substring(0, contextPath.length() - 1);
- getServletContext().setAttribute("path", "/" + contextPath); //设置项目路径,用于设置绝对路径
- }
- }