第十七章_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枚举的成员之一(DENYPERMIT

rolesAllowed:表示授权角色的一个字符串数组

transportGuarantee:表示是否有必须满足的数据保护要求,它的有效值为ServletSecurity.TransportGuarantee枚举的成员之一(CONFIDENTIAL或者NONE

value:受影响的HTTP方法

例如,下列ServletSecurity注解使用了valuehttpMethodConstraints这两个属性。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”),

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

valueHttpConstraint注解定义了应用于没有相应HttpMethodConstraint的所有HTTP方法的安全约束。

例如,以下ServletSecurity注解中包含了一个HttpConstraint标注,表示被标注的Servlet只能由manager角色中的用户访问。

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

 

6、WebFilter

WebFilter注解类型用来标注一个过滤器,下面是它的属性:

asyncSupported:表示该过滤器是否支持异步处理

description:该过滤器的描述

dispatcherTypes:该过滤器应用到的一组DispatcherTypes

displayName:该过滤器的显示名称

filterName:该过滤器的名称

initParams:该过滤器的初始参数

largeIcon:该过滤器的大图标

servletNames:该过滤器应用到的几个Servlet的名称

smallIcon:该过滤器的小图标

urlPatterns:该过滤器应用到的URL模式

value:该过滤器应用到的URL模式

 

7、WebInitParam

这个注解类型用于给ServletFilter传递初始化参数。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:调用该ServletURL模式

value:调用该ServletURL模式

目录
相关文章
|
2月前
ssm使用全注解实现增删改查案例——web.xml
ssm使用全注解实现增删改查案例——web.xml
10 0
|
9月前
|
前端开发 Java 开发者
深入解析Java中的 @Controller 注解:构建灵活的Web应用
在现代的Java Web开发中,控制层是连接用户界面和后端逻辑的关键环节。Spring框架为我们提供了丰富的注解来构建控制层,其中 @Controller 注解在MVC架构中扮演着重要的角色。本文将带您深入了解 @Controller 注解,探讨其特点、用法、实现方式以及在实际应用中的优势。
|
XML 敏捷开发 应用服务中间件
WEB核心【Servlet配置和注解重构用户登录】第八章
本篇章主要讲Servlet,两个重点:Servlet路径配置,Servlet注解开发,了解内容Servlet继承数及生命周期,Servlet路径配置,ServletConfig配置
WEB核心【Servlet配置和注解重构用户登录】第八章
|
前端开发 Java 索引
springboot注解详解(一)Spring Web MVC 注解
springboot注解详解(一)Spring Web MVC 注解
|
XML 缓存 前端开发
【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(下)
【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(下)
【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(下)
|
前端开发 Java 容器
【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(上)
【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(上)
【小家Spring】Spring容器(含父子容器)的启动过程源码级别分析(含web.xml启动以及全注解驱动,和ContextLoader源码分析)(上)
|
XML 前端开发 Java
【小家Spring】Spring注解驱动开发---Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer)(下)
【小家Spring】Spring注解驱动开发---Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer)(下)
【小家Spring】Spring注解驱动开发---Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer)(下)
|
XML 前端开发 搜索推荐
【小家Spring】Spring注解驱动开发---Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer)(中)
【小家Spring】Spring注解驱动开发---Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer)(中)
【小家Spring】Spring注解驱动开发---Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer)(中)
|
前端开发 安全 Java
【小家Spring】Spring注解驱动开发---Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer)(上)
【小家Spring】Spring注解驱动开发---Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer)(上)
【小家Spring】Spring注解驱动开发---Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer)(上)
|
Java Spring
第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析
关于spring中的validate注解后台校验的解析 在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节。比如参数不能为null,email那么必须符合email的格式,如果手动进行if判断或者写正则表达式判断无意开发效率太慢,在时间、成本、质量的博弈中必然会落后。
1166 0