第十七章_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枚举的成员之中的一个(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注解的更多相关文章
- 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介 ...
- 进击的Python【第十七章】:jQuery的基本应用
进击的Python[第十七章]:jQuery的基本应用
- <构建之法>第十三章到十七章有感以及这个项目读后感
<构建之法>第十三章到十七章有感 第13章:软件测试方法有哪些? 主要讲了软件测试方法:要说有什么问题就是哪种效率最高? 第14章:质量保障 软件的质量指标是什么?怎么样能够提升软件的质量 ...
- 程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索
第三十六~三十七章.搜索智能提示suggestion,附近地点搜索 作者:July.致谢:caopengcs.胡果果.时间:二零一三年九月七日. 题记 写博的近三年,整理了太多太多的笔试面试题,如微软 ...
- 《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记
第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟 ...
- [汇编学习笔记][第十七章使用BIOS进行键盘输入和磁盘读写
第十七章 使用BIOS进行键盘输入和磁盘读写 17.1 int 9 中断例程对键盘输入的处理 17.2 int 16 读取键盘缓存区 mov ah,0 int 16h 结果:(ah)=扫描码,(al) ...
- 第十七章——配置SQLServer(3)——配置“对即时负载的优化”
原文:第十七章--配置SQLServer(3)--配置"对即时负载的优化" 前言: 在第一次执行查询或者存储过程时,会创建执行计划并存储在SQLServer的过程缓存内存中.在很多 ...
- 第十七章——配置SQLServer(4)——优化SQLServer实例的配置
原文:第十七章--配置SQLServer(4)--优化SQLServer实例的配置 前言: Sp_configure 可以用于管理和优化SQLServer资源,而且绝大部分配置都可以使用SQLServ ...
- 第十七章——配置SQLServer(2)——32位和64位系统中的内存配置
原文:第十七章--配置SQLServer(2)--32位和64位系统中的内存配置 前言: 本文讲述32位和64位系统中的内存配置,在SQLServer 2005/2008中,DBA们往往尝试开启AWE ...
随机推荐
- nyoj19(排列组合next_permutation(s.begin(),s.end()))
题目意思: 从n个数中选择m个数,按字典序输出其排列. pid=19">http://acm.nyist.net/JudgeOnline/problem.php?pid=19 例: 输 ...
- 火狐浏览器中加入httprequest的方法
今天弄了非常久就才装好. 以下的样例是以 window为样例的,mac的也是这样, 下载好火狐之后点击右上角的菜单 想到httprequest是个插件,就点击附加组件 搜索出来之后找到httprequ ...
- oracle 11gR2 如何修改vip
因为业务需要,需要将p570a主机和p570b主机上的vip做修改 修改前ip 192.168.128.12 p570a-vip 192.168.128.13 p570b-vip 修改后ip ...
- BigInteger类型转换成Long类型或int类型问题
BigInteger bi = new BigInteger("123"); int i = bi.intValue(); lo ...
- MyEclipse 安装svn 插件步骤详情
方法一:在线安装 打开HELP- > MyEclipse Configuration Center.切换到SoftWare标签页. 点击Add Site 打开对话框,在对话框Name输入Svn, ...
- BZOJ 3052 树上带修莫队
思路: 就是把带修莫队移到了树上 块的大小开到(n^2/3)/2 比较好- 这是一个卡OJ好题 //By SiriusRen #include <cmath> #include <c ...
- LVS(Linux Viretual Server) 负载均衡器 + 后端服务器
##定义: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. ##结构: 一般来说,LVS集群采用三层结构,其主要组成部分为: A.负载调 ...
- 有关DevExpress 安装后vs工具箱不显示图标的错误
在https://www.devexpress.com/Support/Center/Question/Details/T214296/missing-icons-from-toolbox找到解决方法 ...
- 用一个小的例子来说明为什么TCP采用三次握手才能保证连接成功
关于TCP的三次握手,有很多朋友还在疑惑为什么是三次,而不是两次,LZ想了一下用一个例子来说明最好. 场景: 办公室有一名前台(服务器),若干业务员(fork出来的进程) 客户(客户端) 为什么我 ...
- Redis数据库入门基础,及优缺点介绍
简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis 是一个高性能的key-value数据库.R ...