我正在学习Java服务器,我遇到了ServletContextListener的问题。我看到它没有被调用,所以当我执行getAttribute时它总是返回null,因为该属性没有在实现ServletContextListener的类中设置。我已经在web.xml中解码了代码,我发现它也在那里进行了解 还有什么问题呢? 代码很长,所以我会发布一小部分内容。
package common;
// import stuff
public class ServerContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
ServletContext context = event.getServletContext();
context.setAttribute(Const.ATTR_LICENSES, licenses);
// code here
}
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// code here
}
// other file
Licenses licenses = (Licenses) context.getAttribute(Const.ATTR_LICENSES); // this returns null
这是web.xml的一部分:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<display-name>mymob</display-name>
<context-param>
<param-name>jobQueueName</param-name>
<param-value>mobileJobQueue</param-value>
</context-param>
<listener>
<listener-class>common.ServerContextListener</listener-class>
</listener>
//other parameters