第十七章_Web註解

來源:互聯網
上載者:User

標籤:web註解

1、HandlesTypes

這個註解類型用來聲明ServletContainerInitializer可以處理哪些類型的類。它有一個屬性、一個值,用來聲明類的類型。例如,下面的ServletContainerInitializer用@HandleTypes進行標註,聲明初始化程式可以處理UsefulServlet。

@HandlesTypes({UsefulServlet.class})

public class MyInitializer implements ServletContainerInitializer{

...

}

 

2、HttpConstraint

HttpConstraint註解類型表示適用於沒有對應HttpMethodConstraint元素的所有HTTP協議方法的安全約束。這個註解類型必須放在ServletSecurity註解中。

它的屬性如下:

rolesAllowed:表示授權角色的一個字串數組。

transportGuarantee:表示是否有必須滿足的資料保護要求,有效值為ServletSecurity.TransportGuarantee枚舉的成員之一

value:預設的授權語義

例如,下列HttpConstraint標註聲明被標註的Servlet只能由屬於manager角色的使用者進行訪問。由於沒有HttpMethodConstraint標註,這條約束將應用於所有的HTTP方法。

@ServletSecurity(@HttpConstraint(rolesAllowed=”manager”))

 

3、HttpMethodConstraint

這個註解類型表示特定HTTP方法中的一個安全約束。HttpMethodConstraint標註只能出現在ServletSecurity註解中。

HttpMethodConstraint的屬性如下:

emptyRoleSemantic:這是預設的授權語義,這個值必須是ServletSecurity.EmptyRoleSemantic枚舉的成員之一(DENY或PERMIT)

rolesAllowed:表示授權角色的一個字串數組

transportGuarantee:表示是否有必須滿足的資料保護要求,它的有效值為ServletSecurity.TransportGuarantee枚舉的成員之一(CONFIDENTIAL或者NONE)

value:受影響的HTTP方法

例如,下列ServletSecurity註解使用了value和httpMethodConstraints這兩個屬性。HttpConstraint註解定義了可以訪問被標註Servlet的角色,HttpMethodConstraint註解(沒有rolesAllowed屬性)覆蓋了Get方法的約束。因此,任何使用者都可以通過Get訪問這個Servlet。另一方面,通過其他所有HTTP方法進行訪問的許可權僅限於manager角色的使用者。

@ServletSecurity([email protected](rolesAllowed=”manager”),

httpMethodConstraints={@HttpMethodConstraint(“GET”)})

但是,如果HttpMethodConstraint標註類型的emptyRoleSemantic屬性值為EmptyRoleSemantic.DENY,那麼該方法將限制所有使用者的訪問。例如,用以下ServletSecurity註解進行標註的Servlet將阻止通過Get方法進行訪問,但是允許member角色中的所有使用者通過其他HTTP方法進行訪問。

@ServletSecurity([email protected](rolesAllowed=”member”),

httpMethodConstraints={@HttpMethodConstraint(value=”GET”,

emptyRoleSemantic=EmptyRoleSemantic.DENY)})

 

4、MultipartConfig

MultipartConfig註解類型用來標註一個Servlet,表示這個Servlet的執行個體是否能夠處理multipart/form-data MIME類型,一般在上傳檔案時會用到。

下列MultipartConfig標註規定,可以上傳的最大檔案容量是一百萬個位元組

@MultipartConfig(maxFileSize = 1000000)

屬性為:

fileSizeThreshold:超過這個容量界限之後,所上傳的檔案將被寫入磁碟

location:上傳的檔案被存入磁碟時儲存的位置

maxFileSize:上傳檔案的最大容量。大於指定值的檔案會被拒絕。maxFileSize的預設值為-1,表示不受限制。

maxRequestSize:表示允許multipart HTTP請求的最大容量,預設值為-1,表示不受限制

 

5、ServletSecurity

ServletSecurity註解類型用來標註Servlet類,並對這個Servlet上應用安全約束。在ServletSecurity標註中可能出現的屬性如下所示:

httpMethodConstraints:指定HTTP方法特定約束的一組HttpMethodConstraint

value:HttpConstraint註解定義了應用於沒有相應HttpMethodConstraint的所有HTTP方法的安全約束。

例如,以下ServletSecurity註解中包含了一個HttpConstraint標註,表示被標註的Servlet只能由manager角色中的使用者訪問。

@ServletSecurity([email protected](rolesAllowed=”manager”))

 

6、WebFilter

WebFilter註解類型用來標註一個過濾器,下面是它的屬性:

asyncSupported:表示該過濾器是否支援非同步處理

description:該過濾器的描述

dispatcherTypes:該過濾器應用到的一組DispatcherTypes

displayName:該過濾器的顯示名稱

filterName:該過濾器的名稱

initParams:該過濾器的初始參數

largeIcon:該過濾器的大表徵圖

servletNames:該過濾器應用到的幾個Servlet的名稱

smallIcon:該過濾器的小表徵圖

urlPatterns:該過濾器應用到的URL模式

value:該過濾器應用到的URL模式

 

7、WebInitParam

這個註解類型用於給Servlet或Filter傳遞初始化參數。WebInitParam註解中可能出現的屬性如下:

description:初始化參數的描述

name:初始化參數的名稱

value:初始化參數的值

 

8、WebListener

這個註解類型用來給監聽器進行標註。它的唯一屬性value是可選的,其中包含這個監聽器的描述。

 

9、WebServlet

這個註解類型用來標註Servlet,屬性如下:

asyncSupported:表明該Servlet是否支援非同步處理

description:該Servlet的描述

displayName:該Servlet的顯示名稱

initParams:該Servlet的初始化參數

largeIcon:該Servlet的大表徵圖

loadOnStarpup:在一個包含多個Servlet的應用程式中,各Servlet的載入順序

name:該Servlet的名稱

smallIcon:該Servlet的小表徵圖

urlPatterns:調用該Servlet的URL模式

value:調用該Servlet的URL模式

 

第十七章_Web註解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.