1. 程式人生 > >Servlet3.1使用@WebServlet註解配置問題記錄

Servlet3.1使用@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屬性。
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類。控制檯輸出結果: