今天发现,如果配置loadOnStartup为启动时加载的Servlet,如果仅仅配置loadOnStartup的Annotation
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();
}
}
这个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,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();
}
}