Servlet3.1使用@WebServlet註解配置問題記錄
阿新 • • 發佈:2019-01-02
@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的新的例項。
該註解用於在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屬性。啟動伺服器,當loadOnStartup=1時,代表服務一啟動就去載入執行例項化這個servlet類。控制檯輸出結果: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"); } }