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(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

value:HttpConstraint注解定义了应用于没有对应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

这个注解类型用于给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注解的更多相关文章

  1. 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端

    原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介 ...

  2. 进击的Python【第十七章】:jQuery的基本应用

    进击的Python[第十七章]:jQuery的基本应用

  3. <构建之法>第十三章到十七章有感以及这个项目读后感

    <构建之法>第十三章到十七章有感 第13章:软件测试方法有哪些? 主要讲了软件测试方法:要说有什么问题就是哪种效率最高? 第14章:质量保障 软件的质量指标是什么?怎么样能够提升软件的质量 ...

  4. 程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索

    第三十六~三十七章.搜索智能提示suggestion,附近地点搜索 作者:July.致谢:caopengcs.胡果果.时间:二零一三年九月七日. 题记 写博的近三年,整理了太多太多的笔试面试题,如微软 ...

  5. 《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记

    第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟 ...

  6. [汇编学习笔记][第十七章使用BIOS进行键盘输入和磁盘读写

    第十七章 使用BIOS进行键盘输入和磁盘读写 17.1 int 9 中断例程对键盘输入的处理 17.2 int 16 读取键盘缓存区 mov ah,0 int 16h 结果:(ah)=扫描码,(al) ...

  7. 第十七章——配置SQLServer(3)——配置“对即时负载的优化”

    原文:第十七章--配置SQLServer(3)--配置"对即时负载的优化" 前言: 在第一次执行查询或者存储过程时,会创建执行计划并存储在SQLServer的过程缓存内存中.在很多 ...

  8. 第十七章——配置SQLServer(4)——优化SQLServer实例的配置

    原文:第十七章--配置SQLServer(4)--优化SQLServer实例的配置 前言: Sp_configure 可以用于管理和优化SQLServer资源,而且绝大部分配置都可以使用SQLServ ...

  9. 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置

    原文:第十七章--配置SQLServer(2)--32位和64位系统中的内存配置 前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE ...

随机推荐

  1. Loadrunner得到server參数

    首先你得确定你所监视的server与你的測试机是在同一个局域网内, 监控windows系统: 1.监视连接前的准备工作         1)进入被监视windows系统.开启下面二个服务Remote ...

  2. ubuntu12.04安装翻译软件stardict及卸载

    下载: 1.打开软件中心.搜索stardict,星际译王,即ubuntu下的翻译软件. 点击下载就可以. 2.打开终端,输入 $sudo apt-get install stardict 按提示就可以 ...

  3. 最长公共子序列(Swift版本)

    class Mark {     var count: Int     var type: Int         init(count: Int, type: Int) {         self ...

  4. gdb help all 帮助信息

    Command class: aliases ni -- Step one instruction rc -- Continue program being debugged but run it i ...

  5. tensorflow利用预训练模型进行目标检测(一):安装tensorflow detection api

    一.tensorflow安装 首先系统中已经安装了两个版本的tensorflow,一个是通过keras安装的, 一个是按照官网教程https://www.tensorflow.org/install/ ...

  6. How to remove focus without setting focus to another control?

    How to remove focus without setting focus to another control? Ask Question up vote 67 down vote favo ...

  7. excel如何将一列按奇偶数分成两列

    借助于函数.上图说明一切: 方法一.OFFSET函数, 奇数列公式:C1=OFFSET($A$1,ROW()*2-2,), 偶数列公式:D1=OFFSET($A$1,ROW()*2-1,) 一起下拉即 ...

  8. SQLserver中用convert函数转换日期格式(1)

    SQLserver中用convert函数转换日期格式2008-01-15 15:51SQLserver中用convert函数转换日期格式 SQL Server中文版的默认的日期字段datetime格式 ...

  9. Android开发:ImageView阴影和图层效果

    import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import  ...

  10. 【译文】采用chrome的DevTool中TimeLine和profile工具提升Web app性能

    ->译文,原文在这里<- 本文地址: http://www.cnblogs.com/blackmanba/p/web-perfomance-with-Chrome-DevTools.htm ...