web.xml 常用节点包括了context-param,listener,filter,servlet
它们的加载顺序是:context-param -> listener -> filter -> servlet.
1. context-param提供一个key-value,用来给整个web应用初始化提供信息。value通常是一个property文件或xml文件。
2. listener在容器启动时(以tomcat为例),会注册一个类去读取1中的value包含的信息。
该类实现ServletContextListener接口,会有一个以下方法:
public void contextInitialized(ServletContextEvent contextEvent) { try { ServletContext sc = contextEvent.getServletContext(); String path = sc.getInitParameter("config.file"); // relative path based context-root, if relative path. File f = new File(path); if (!f.isAbsolute()) { path = sc.getRealPath(path); } ConfigReader.setPath(path); logger.info(this.getClass().getSimpleName() + ": loaded " + path); // UserManager.initInstance(); } catch (IOException e) { logger.error(this.getClass().getSimpleName(), e); } }
3. filter,通过它的名字我们知道它的作用用来过滤。过滤只让我们运行的url来访问我们的web应用。
4. servlet最后来处理这些url。