Servlet的@WebServlet標註,servlet@webservlet

來源:互聯網
上載者:User

Servlet的@WebServlet標註,servlet@webservlet
Servlet的@WebServlet註解

編寫好Servlet之後,要告訴Web容器有關這個Servlet的一些資訊.

在Servlet3.0中,可以使用標註(Annotation)來告訴容器哪些Servlet會提供服務以及額外的資訊

 

寫個例子:

package cn.my.servlet;import java.io.IOException;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 MyServlet */@WebServlet("/hello.do")public class MyServlet extends HttpServlet {    private static final long serialVersionUID = 1L;           protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {                System.out.println("hello");        }    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        doGet(request, response);    }}

 

只要在Servlet上設定@WebServlet標註,容器會自動讀取當中的資訊.從這個例子中可以看到,如果請求的URL是hello.do,則由MyServlet執行個體提供服務.

也可以使用@WebServlet提供更多資訊

@WebServlet(    name="myServlet",    urlPatterns="hello.do",    loadOnStartup=1 )public class MyServlet extends HttpServlet {

上面的@WebServlet告知web容器:

MyServlet這個Servlet的名稱是myServlet,這是由name屬性指定的(name屬性如果沒有指定的話,預設為Servlet類完整名稱)

如果用戶端請求的URL是/hello.do,則由具有myServlet名稱的Servlet來處理,這是由urlpatterns屬性來指定的.

 

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.