使用@WebServlet配置loadOnStartup的時候不起作用的解決方法
阿新 • • 發佈:2019-01-25
今天發現,如果配置loadOnStartup為啟動時載入的Servlet,如果僅僅配置loadOnStartup的Annotation
這個Servlet將看不到結果,但是如果加上urlPatterns或者value的值,就能看到效果,目前原因不明package com.zhen.servlet; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.swing.Timer; /** * Servlet implementation class TimerServlet */ @WebServlet(loadOnStartup=1) public class TimerServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see Servlet#init(ServletConfig) */ public void init(ServletConfig config) throws ServletException { super.init(config); new Timer(1000,new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println(new Date()); } }).start(); } }
package com.zhen.servlet; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Date; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.swing.Timer; /** * Servlet implementation class TimerServlet */ @WebServlet(loadOnStartup=1,urlPatterns={"/timerServlet"}) public class TimerServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see Servlet#init(ServletConfig) */ public void init(ServletConfig config) throws ServletException { super.init(config); new Timer(1000,new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println(new Date()); } }).start(); } }