程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jsp 編程之@WebServlet詳解

jsp 編程之@WebServlet詳解

編輯:關於JSP

編寫好Servlet之後,接下來要告訴Web容器有關於這個Servlet的一些信息。在Servlet 3.0中,可以使用標注(Annotation)來告知容器哪些Servlet會提供服務以及額外信息。例如在HelloServlet.java中:
  

 @WebServlet(“/hello.view”)
  public class HelloServlet extends HttpServlet {
  只要在Servlet上設置@WebServlet標注,容器就會自動讀取當中的信息。上面的@WebServlet告訴容器,如果請求的URL是“/hello.view”,則由HelloServlet的實例提供服務。可以使用@WebServlet提供更多信息。
  @WebServlet(
    name=”Hello”,
    urlPatterns={“/hello.view”},
    loadOnStartup=1
  )
  public class HelloServlet extends HttpServlet {

    上面的@WebServlet告知容器,HelloServlet這個Servlet的名稱是Hello,這是由name屬性指定的,而如果客戶端請求的URL是/hello.view,則由具Hello名稱的Servlet來處理,這是由urlPatterns屬性來指定的。在Java EE相關應用程序中使用標注時,可以記得的是,沒有設置的屬性通常會有默認值。例如,若沒有設置@WebServlet的name屬性,默認值會是Servlet的類完整名稱。

    當應用程序啟動後,事實上並沒有創建所有的Servlet實例。容器會在首次請求需要某個Servlet服務時,才將對應的Servlet類實例化、進行初始化操作,然後再處理請求。這意味著第一次請求該Servlet的客戶端,必須等待Servlet類實例化、進行初始動作所必須花費的時間,才真正得到請求的處理。

    如果希望應用程序啟動時,就先將Servlet類載入、實例化並做好初始化動作,則可以使用loadOnStartup設置。設置大於0的值(默認值為-1),表示啟動應用程序後就要初始化Servlet(而不是實例化幾個Servlet)。數字代表了Servlet的初始順序,容器必須保證有較小數字的Servlet先初始化,在使用標注的情況下,如果有多個Servlet在設置loadOnStartup時使用了相同的數字,則容器實現廠商可以自行決定要如何載入哪個Servlet。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved