天天看点

第十七章_Web注解

这个注解类型用来声明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模式

继续阅读