第十七章_Web注解

2024-08-22 23:48
文章标签 web 注解 第十七章

本文主要是介绍第十七章_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模式

 

这篇关于第十七章_Web注解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097752

相关文章

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

基于@RequestParam注解之Spring MVC参数绑定的利器

《基于@RequestParam注解之SpringMVC参数绑定的利器》:本文主要介绍基于@RequestParam注解之SpringMVC参数绑定的利器,具有很好的参考价值,希望对大家有所帮助... 目录@RequestParam注解:Spring MVC参数绑定的利器什么是@RequestParam?@

Spring Security注解方式权限控制过程

《SpringSecurity注解方式权限控制过程》:本文主要介绍SpringSecurity注解方式权限控制过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、摘要二、实现步骤2.1 在配置类中添加权限注解的支持2.2 创建Controller类2.3 Us

Java中使用注解校验手机号格式的详细指南

《Java中使用注解校验手机号格式的详细指南》在现代的Web应用开发中,数据校验是一个非常重要的环节,本文将详细介绍如何在Java中使用注解对手机号格式进行校验,感兴趣的小伙伴可以了解下... 目录1. 引言2. 数据校验的重要性3. Java中的数据校验框架4. 使用注解校验手机号格式4.1 @NotBl

SpringBoot自定义注解如何解决公共字段填充问题

《SpringBoot自定义注解如何解决公共字段填充问题》本文介绍了在系统开发中,如何使用AOP切面编程实现公共字段自动填充的功能,从而简化代码,通过自定义注解和切面类,可以统一处理创建时间和修改时间... 目录1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re