这个注解类型用来声明servletcontainerinitializer可以处理哪些类型的类。它有一个属性、一个值,用来声明类的类型。例如,下面的servletcontainerinitializer用@handletypes进行标注,声明初始化程序可以处理usefulservlet。
@handlestypes({usefulservlet.class})
public class myinitializer implements servletcontainerinitializer{
...
}
httpconstraint注解类型表示适用于没有对应httpmethodconstraint元素的所有http协议方法的安全约束。这个注解类型必须放在servletsecurity注解中。
它的属性如下:
rolesallowed:表示授权角色的一个字符串数组。
transportguarantee:表示是否有必须满足的数据保护要求,有效值为servletsecurity.transportguarantee枚举的成员之一
value:默认的授权语义
例如,下列httpconstraint标注声明被标注的servlet只能由属于manager角色的用户进行访问。由于没有httpmethodconstraint标注,这条约束将应用于所有的http方法。
@servletsecurity(@httpconstraint(rolesallowed=”manager”))
这个注解类型表示特定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(value=@httpconstraint(rolesallowed=”manager”),
httpmethodconstraints={@httpmethodconstraint(“get”)})
但是,如果httpmethodconstraint标注类型的emptyrolesemantic属性值为emptyrolesemantic.deny,那么该方法将限制所有用户的访问。例如,用以下servletsecurity注解进行标注的servlet将阻止通过get方法进行访问,但是允许member角色中的所有用户通过其他http方法进行访问。
@servletsecurity(value=@httpconstraint(rolesallowed=”member”),
<a target="_blank" href="mailto:httpmethodconstraints=%7b@httpmethodconstraint(value=%5c%e2%80%9dget%5c%e2%80%9d,emptyrolesemantic=emptyrolesemantic.deny)%7d)">httpmethodconstraints={@httpmethodconstraint(value=”get”,</a>
emptyrolesemantic=emptyrolesemantic.deny)})
multipartconfig注解类型用来标注一个servlet,表示这个servlet的实例是否能够处理multipart/form-data mime类型,一般在上传文件时会用到。
下列multipartconfig标注规定,可以上传的最大文件容量是一百万个字节
@multipartconfig(maxfilesize = 1000000)
属性为:
filesizethreshold:超过这个容量界限之后,所上传的文件将被写入磁盘
location:上传的文件被存入磁盘时保存的位置
maxfilesize:上传文件的最大容量。大于指定值的文件会被拒绝。maxfilesize的默认值为-1,表示不受限制。
maxrequestsize:表示允许multipart http请求的最大容量,默认值为-1,表示不受限制
servletsecurity注解类型用来标注servlet类,并对这个servlet上应用安全约束。在servletsecurity标注中可能出现的属性如下所示:
httpmethodconstraints:指定http方法特定约束的一组httpmethodconstraint
value:httpconstraint注解定义了应用于没有相应httpmethodconstraint的所有http方法的安全约束。
例如,以下servletsecurity注解中包含了一个httpconstraint标注,表示被标注的servlet只能由manager角色中的用户访问。
@servletsecurity(value=@httpconstraint(rolesallowed=”manager”))
webfilter注解类型用来标注一个过滤器,下面是它的属性:
asyncsupported:表示该过滤器是否支持异步处理
description:该过滤器的描述
dispatchertypes:该过滤器应用到的一组dispatchertypes
displayname:该过滤器的显示名称
filtername:该过滤器的名称
initparams:该过滤器的初始参数
largeicon:该过滤器的大图标
servletnames:该过滤器应用到的几个servlet的名称
smallicon:该过滤器的小图标
urlpatterns:该过滤器应用到的url模式
value:该过滤器应用到的url模式
这个注解类型用于给servlet或filter传递初始化参数。webinitparam注解中可能出现的属性如下:
description:初始化参数的描述
name:初始化参数的名称
value:初始化参数的值
这个注解类型用来给监听器进行标注。它的唯一属性value是可选的,其中包含这个监听器的描述。
这个注解类型用来标注servlet,属性如下:
asyncsupported:表明该servlet是否支持异步处理
description:该servlet的描述
displayname:该servlet的显示名称
initparams:该servlet的初始化参数
largeicon:该servlet的大图标
loadonstarpup:在一个包含多个servlet的应用程序中,各servlet的加载顺序
name:该servlet的名称
smallicon:该servlet的小图标
urlpatterns:调用该servlet的url模式
value:调用该servlet的url模式