第十七章_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

相关文章

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Java利用@SneakyThrows注解提升异常处理效率详解

《Java利用@SneakyThrows注解提升异常处理效率详解》这篇文章将深度剖析@SneakyThrows的原理,用法,适用场景以及隐藏的陷阱,看看它如何让Java异常处理效率飙升50%,感兴趣的... 目录前言一、检查型异常的“诅咒”:为什么Java开发者讨厌它1.1 检查型异常的痛点1.2 为什么说

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

spring中的@MapperScan注解属性解析

《spring中的@MapperScan注解属性解析》@MapperScan是Spring集成MyBatis时自动扫描Mapper接口的注解,简化配置并支持多数据源,通过属性控制扫描路径和过滤条件,利... 目录一、核心功能与作用二、注解属性解析三、底层实现原理四、使用场景与最佳实践五、注意事项与常见问题六

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho