jsp 編程之@WebServlet詳解
編寫好Servlet之后,接下來要告訴Web容器有關(guān)于這個Servlet的一些信息。在Servlet 3.0中,可以使用標(biāo)注(Annotation)來告知容器哪些Servlet會提供服務(wù)以及額外信息。例如在HelloServlet.java中:
@WebServlet(“/hello.view”) public class HelloServlet extends HttpServlet { 只要在Servlet上設(shè)置@WebServlet標(biāo)注,容器就會自動讀取當(dāng)中的信息。上面的@WebServlet告訴容器,如果請求的URL是“/hello.view”,則由HelloServlet的實例提供服務(wù)。可以使用@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相關(guān)應(yīng)用程序中使用標(biāo)注時,可以記得的是,沒有設(shè)置的屬性通常會有默認(rèn)值。例如,若沒有設(shè)置@WebServlet的name屬性,默認(rèn)值會是Servlet的類完整名稱。
當(dāng)應(yīng)用程序啟動后,事實上并沒有創(chuàng)建所有的Servlet實例。容器會在首次請求需要某個Servlet服務(wù)時,才將對應(yīng)的Servlet類實例化、進(jìn)行初始化操作,然后再處理請求。這意味著第一次請求該Servlet的客戶端,必須等待Servlet類實例化、進(jìn)行初始動作所必須花費的時間,才真正得到請求的處理。
如果希望應(yīng)用程序啟動時,就先將Servlet類載入、實例化并做好初始化動作,則可以使用loadOnStartup設(shè)置。設(shè)置大于0的值(默認(rèn)值為-1),表示啟動應(yīng)用程序后就要初始化Servlet(而不是實例化幾個Servlet)。數(shù)字代表了Servlet的初始順序,容器必須保證有較小數(shù)字的Servlet先初始化,在使用標(biāo)注的情況下,如果有多個Servlet在設(shè)置loadOnStartup時使用了相同的數(shù)字,則容器實現(xiàn)廠商可以自行決定要如何載入哪個Servlet。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Hibernate識別數(shù)據(jù)庫特有字段實例詳解
這篇文章主要介紹了Hibernate識別數(shù)據(jù)庫特有字段實例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06