SpringMVC项目中web.xml中的节点加载顺序问题,之前以为web.xml中就是一些配置信息,和节点的顺序没有关系,后来才发现初始化时的加载顺序是和节点的顺序相关的。
完整的web.xml文件内容:
contextConfigLocationclasspath*:/spring/*.xmlencodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingUTF-8forceEncodingtrueencodingFilter/*authenticationFilterorg.springframework.web.filter.DelegatingFilterProxyauthenticationFilter/*authorizationFilterorg.springframework.web.filter.DelegatingFilterProxyauthorizationFilter/*com.auth.spring.listener.SpringLoaderListenercom.abc.mobile.web.MobileLoadercom.auth.listener.HttpSessionManagerorg.springframework.web.util.IntrospectorCleanupListenercom.abc.conference.context.RpcManagerActioncom.abc.conference.apis.Actiont1com.abc.base.web.init.BaseDataServlet1Action/public/Actionmiddlewarecom.abc.mobile.web.ActionProxymiddleware/public/middleware springmvcorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath*:/springmvc-servlet.xml1springmvc*.doServletLoaderServletLoadercom.abc.conference.context.ServletLoader1middlewareInitmiddlewareInitcom.abc.middleware.init.MiddlewareServletLoader2/index.jsp15因为在Action中用到了一些静态变量,而这个静态变量是在BaseDataServlet中初始化的,所以如果
t1com.abc.base.web.init.BaseDataServlet1配置节点,在Action:
Action/public/Action节点之后的话,那调用静态变量的时候,静态变量的值就是Null,因为这时还没有初始化呢。