规范 Tomcat 8.0.20,操作系统:win 7,Java:1.8
1) Servlet StartServletInit 扩展了 HttpServlet
2) StartServletInit 有只有一种方法 "public void init(ServletConfig config)”,它读取类路径中的“属性文件”并打印 在控制台上控制注入(inject)的键/值对。
3) web.xml 有标题项如下
version="3.1"
**metadata-complete="false"**
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
3) Web.xml 在启动时加载为
<servlet>
<servlet-name>StartServletInit</servlet-name>
<servlet-class>org.web.init.StartServletInit</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
O/p:完美执行并在控制台上打印。 ===> :)
问题
注释 [注释了 web.xml 的 loadOnStartup 并注释了代码] "@WebServlet(name = "StartServletInit",loadOnStartup = 1)
O/p:不 - 将键/值打印到控制台。 ===> :(
最佳答案
我认为您不能为同一个 servlet 混合使用 web.xml 配置和注释。您可以使用 web.xml 或注释,但不能同时使用。
尝试从 web.xml 中完全删除 servlet 定义和 servlet 映射,并将 servlet 映射的 url-pattern 的值作为“值”属性放在注释中。使用注释时,servlet 名称并不是很有用。
例子:
@WebServlet(value="/your_url_pattern", loadOnStartup=1)
关于tomcat - Web.xml 配置替换为 LoadOnStartup 的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265903/