程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Servlet的@WebServlet標注,servlet@webservlet

Servlet的@WebServlet標注,servlet@webservlet

編輯:JAVA綜合教程

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.

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