@WebServlet注解配置问题记录

@WebServlet
该注解用于在Web应用中定义Servlet组件。该注解在一个类上指定并包含声明Servlet的元数据。必须指
定注解的urlPatterns或value属性。所有其他属性是可选的默认设置(请参考javadoc获取更多细节)。当注
解上唯一属性是url模式时推荐使用value且当也有使用其他属性时使用urlPatterns属性。在同一注解上同
时使用value 和urlPatterns属性是非法的。如果没有指定Servlet名字则默认是全限定类名。被注解的sevlet
必须指定至少一个url模式进行部署。如果同一个Servlet类以不同的名字声明在部署描述符中,必须实例
化一个新的Servlet实例。如果使用不同名字添加的同一个Servlet类使用定义在4-35页的4.4.1节 “编程
式添加和配置Servlet” 的编程式API添加到ServletContext,使用@WebServlet注解声明的属性值必须被
忽略,必须创建一个指定名字的Servlet的新的实例。
@WebServlet注解的类必须继承javax.servlet.http.HttpServlet类。

一. loadOnStartup
注意必须指定注解的urlPatterns或value属性。
[java] view plain copy
package com.markliu.servlets; 
 
import java.io.IOException; 
import javax.servlet.ServletConfig; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
/**
* Servlet implementation class LoadOnStartUpServlet
*/ 
@WebServlet(  
//      urlPatterns = { "/startup", "/init" }, 
        value = "/startup", 
        loadOnStartup = 1) 
 
public class LoadOnStartUpServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
 
     
    public LoadOnStartUpServlet() { 
        super(); 
        System.out.println("LoadOnStartUpServlet...实例化"); 
    } 
 
    public void init(ServletConfig config) throws ServletException { 
        System.out.println("LoadOnStartUpServlet...初始化"); 
    } 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        System.out.println("LoadOnStartUpServlet...doGet"); 
    } 
 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, 
            IOException { 
        System.out.println("LoadOnStartUpServlet...doPost"); 
    } 
 

启动服务器,当loadOnStartup=1时,代表服务一启动就去加载执行实例化这个servlet类。

猜你喜欢

转载自linsky328.iteye.com/blog/2381076