第十七章_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([email protected](rolesAllowed=”manager”),

httpMethodConstraints={@HttpMethodConstraint(“GET”)})

但是,如果HttpMethodConstraint标注类型的emptyRoleSemantic属性值为EmptyRoleSemantic.DENY,那么该方法将限制所有用户的访问。例如,用以下ServletSecurity注解进行标注的Servlet将阻止通过Get方法进行访问,但是允许member角色中的所有用户通过其他HTTP方法进行访问。

@ServletSecurity([email protected](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([email protected](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模式

时间: 2024-10-09 07:22:58

第十七章_Web注解的相关文章

2017.2.16 开涛shiro教程-第十七章-OAuth2集成

原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介绍 (1)应用场景 很多开放平台,比如新浪微博开放平台,都在使用开发API接口供开发者使用.即带来了,第三方应用要到开放平台授权的问题.OAuth就是做这个的. 1 OAuth2官网:http://oauth.net/2/ 2 OAuth2协议:http://tools.ietf.org/html/

第三十七章

道恒无为,侯王若能守之,万物将自化.化而欲作,吾将镇之以无名之朴.镇之以无名之朴,夫亦将不欲.不欲以静,万物将自定. 第三十七章1 你抱着怎样的心态,世界就怎样回馈你 道恒无为,侯王若能守之,万物将自化. (第三十七章 第1讲) 道”一直是无我利他(即无为)的,领导者如果能按照天之道做事,做到圣人之道,万物会自动跟着你改变,被你感化. 效仿天之道是解开<道德经>秘密的核心.你是什么心态,世界就怎么回馈你,世界会呼应你的心态. 各位朋友大家好,今天我们接着来聊<道德经>. 在讲之前先

个人:构建之法第十七章读后感

第十七章在开始讲一个项目中的三个角色: 猪:项目的所有者,成功了是最大收益者,失败了最大损失者 鸡:项目的参与者,成功了得到应得的酬劳,失败了也没什么损失 鹦鹉:项目的外援 这一节应该是给“猪”说的,猪需要弄清团队成员投入/承诺/责任,这很重要,也是猪的责任. 分配好角色后,完成项目的过程也会有各种各样的问题: 在做事上会分为:做事的,不做事的,不让别人做事的,做假事的,假装做事的 项目完成后,如何分配利益又是一个问题:比资历?平均?比效率?团队互评?比犯得过错? 书中提出的解决办法: 20%给

第十四——十七章作业

                                                                                                     第十四章 15.3.1 有些成功人士或公司认为不需要独立的测试角色(Test),你怎么看? 在一些软件公司中,QA的工作中包含了Test的角色,负责验证程序是否符合预先设计的功能和特性.但是QA的工作量是很多的,一个好的QA不仅需要对程序架构有着很好的理解,对程序功能和性能都有着较深的理解,并且要

CSS3秘笈复习:十三章&amp;十四章&amp;十五章&amp;十六章&amp;十七章

第十三章 1.在使用浮动时,源代码的顺序非常重要.浮动元素的HTML必须处在要包围它的元素的HTML之前. 2.清楚浮动: (1).在外围div的底部添加一个清除元素:clear属性可以防止元素包围浮动元素.关键字:left.right或both. (2).浮动外围元素:让包含浮动元素的<div>也浮动.选择这种方法一定要在浮动容器后面的任何元素中添加一个clear属性,确保浮动元素落到容器的下方. (3).利用overflow : hidden.另一种常见的方法是在外围的样式中添加以下属性:

《构建之法》第十七章读后感

通过阅读<构建之法>第十七章,不能说对我造成了什么深远的影响,但是还是感触颇深: 第一,工作分配的重要性,说道工作分配,不得不说我们个小组的组长们,组长不仅仅是一个团队的领导者,更是这个团队的灵魂.它不仅需要了解随时掌握各组员的动向,更重要的是,他需要了解各组员的能力,然后根据个人的能力,然后再去非陪相应的任务,只要这样才能做到“物尽其用”,才能更好的完成我们的项目,有时甚者能更创造出以外的效果,达到更完美的状态.这不仅是组长的能力  其实其无时无刻也体现着我们这个小组的团结力和创造力.当初选

第十七章 路由交换机编程

                第十七章    路由交换机编程 MTU = 64KB 毕竟是理想,现阶段实现起来还是有难度:牵涉到较多问题,与大网同步.流量平衡.时隙交换等.所以,APO还是决定MTU = 48E = 1536B,包含头部2E.帧同步头8B.尾部CRC的4B等:数据包的有效内容(不含头部)为45E = 1440B.头部2E = 64B,其中MAC头14B.IP头18B.TCP/UDP/ICMP头32B. 二层交换机是以存储转发为主设计,三层以上的交换机是以256位差分总线的时隙交

Gradle 1.12 翻译——第十七章. 从 Gradle 中调用 Ant

有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com/1.12/userguide/userguide.html 本文原创,转载请注明出处:http://blog.csdn.net/maosidiaoxian/article/details/41204073 关于我对Gradle的翻译,以Github上的项目及http://gradledoc.qin

Java Persistence with MyBatis 3(中文版) 第四章 使用注解配置SQL映射器

在上一章,我们看到了我们是怎样在映射器Mapper XML配置文件中配置映射语句的.MyBatis也支持使用注解来配置映射语句.当我们使用基于注解的映射器接口时,我们不再需要在XML配置文件中配置了.如果你愿意,你也可以同时使用基于XML和基于注解的映射语句. 本章将涵盖以下话题: l 在映射器Mapper接口上使用注解 l 映射语句 @Insert,@Update,@Delete,@SeelctStatements l 结果映射 一对一映射 一对多映射 l 动态SQL @SelectProvi