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. sql查询语句中的乱码 -- 前面加N

    直接运行sql出出现乱码,在中文字符前加N就能够正常显示了.N的含义就是用nvarchar格式显示.

  2. insmod: error inserting &#39;hello.ko&#39;: -1 Invalid module format

    在学习编写linux驱动程序的时候,一般都是从写一个helloworld的模块開始. 可是在编译完毕后,进行模块载入的时候,有时会出现例如以下错误: insmod: error inserting ' ...

  3. EntityFramework 找不到方法:“Void System.Data.Entity.DbModelBuilder.RegisterEntityType

    问题原因,EF当前版本没有该方法,将EF版本升级即可. 1.packages.config <package id="EntityFramework" version=&qu ...

  4. CXF2.7.7 java.lang.RuntimeException: Cannot create a secure XMLInputFactory

    cxf-2.7.7.jar neethi-3.0.2.jar stax2-api-3.1.1.jar woodstox-core-asl-4.2.0.jar wsdl4j-1.6.3.jar xmls ...

  5. HTML文档 html,html5,css,css3

    HTML 各种标签及简单应用: http://www.w3school.com.cn 1 <p><p> 2 <br/> 3 <hr/>横线 4 < ...

  6. Python爬虫:爬取糗事百科

    网上看到的教程,但是是用正则表达式写的,并不能运行,后面我就用xpath改了,然后重新写了逻辑,并且使用了双线程,也算是原创了吧#!/usr/bin/python# -*- encoding:utf- ...

  7. deploy springboot to tomcat

    1    在 Eclipse 中建立新的web项目[ABC],之后 转成Maven项目. 2   创建 class   Application 3  修改POM 4  修改web.xml 5  exp ...

  8. ZBrush破解版真的好用么?

    安装ZBrush®的时候是不是经常出现各种奇葩问题,使用ZBrush时候是不是经常出现停止工作状况,究其原因,原来都是破解搞的鬼.ZBrush破解版你还敢用么? 随着国人对版权的重视,越来越多的制作商 ...

  9. ZBrush破解版下载,ZBrush中文版下载

    11月11日这个令人兴奋的日子又来了.没错,“双十一”所有网购达人狂欢的日子.但是ZBrush却让心心念念的小伙伴们失望了一把,本以为双十一期间会有相关活动的,结果,官方并未提及,事实上,ZBrush ...

  10. MobilNnet

    一.参数数量和理论计算量 1.定义 参数数量(params):关系到模型大小,单位通常为M,通常参数用 float32 表示,也就是每个参数占4个字节,所以模型大小是参数数量的 4 倍 理论计算量(F ...