標籤: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註解