Servlet3.0可以用@WebServlet注解给Web容器设置共享的初始化参数吗?答案是当然不可以

Java Servlet Filter 原理与生产级实战:从请求拦截到链式控制 Servlet Filter 是 Java Web 请求处理流水线的核心组件,其本质是基于责任链模式的容器级拦截机制,运行在 DispatcherServlet 之前,可捕获所有 HTTP 请求(含静态资源、转发、错误页等)。它通过 init/doFilter/destroy 三阶段管理生命周期,依赖 dispatcherTypes 控制触发时机,依靠 filter chain 顺序决定执行逻辑。技术价值在于统一处理跨域、字符编码、日志、权限等横切关注点,避免业务代码污染。典型应用场景包括中文乱码治理、To 阅读详情

Preface:

今天在学习ServletConfig接口时看到书上说:

在Servlet3.0中,可以用@WebServlet注解来在当前Servlet范围内设置初始值.

于是开始突发奇想,那么在Servlet3.0中,可以用WebServlet注解给Web容器设置共享的初始化参数吗?

Analysis:

既然想到了这个问题,那么就一定要搞明白它.

首先我们先来复习一下与此相关的Servlet知识

ServletContext: 

ServletContext表示Web应用的上下文,ServletContext对象可以被Servlet容器中的所有Servlet共享.

它有一个方法 public String getInitParameter(String name) 是用来在整个Web容器中,获取名为name的初始化参数

其初始化参数的取值范围为整个Web容器

ServletConfig:

ServletConfig对象可以在Servlet初始化时,向该Servlet传递信息.

而且它也有一个方法 public String getInitParameter(String name) 是用来在当前项目的所有Servlet范围内,获取名为name的初始化参数

其初始化参数的取值范围为当前项目的所有Servlet范围

那么再看在Servlet3.0中的关于@WebServlet注解的定义

这里已经被明确规定

在Servlet3.0中: 可以用@WebServlet注解来在当前Servlet范围内设置初始值.

没有说可以在Web容器范围内可以设置共享的初始值.

上面是官方的说法,下面是我个人的理解

首先,我们来看一下@WebServlet注解的位置

可以看到@WebServlet注解是在Servlet里面的

那么其范围当然只能在当前Servlet范围内设置初始值

就比如在一个方法内,我们只能定义一个局部变量初始化

而不能在该方法内定义一个全局变量

综上所述

我们不能够用@WebServlet注解给Web容器设置共享的初始化参数

Java EE工程实战:从类加载隔离到JTA事务的生产级避坑指南 Java EE不是Java语法的延伸,而是运行在Servlet容器中的企业级规范体系。它通过类加载隔离保障模块独立性,依托生命周期托管实现资源自动回收,并借助JNDI上下文绑定统一管理数据源等外部依赖。其技术价值在于支撑高并发、可伸缩、可维护的Web服务,典型应用场景包括电商订单系统、金融支付网关和SaaS多租户平台。深入理解ClassLoader机制、Servlet线程模型与JTA分布式事务原理,是跨越‘能写代码’到‘能扛流量’的关键断层。本文聚焦真实项目中高频出现的ClassNotFoundExcept 阅读详情

相关推荐

JSP入门实战:从环境搭建到MVC模式,掌握JavaWeb动态页面核心技术

在JavaWeb开发中,动态页面技术是实现服务器端逻辑与用户界面交互的核心。其基本原理是通过服务器端执行代码,动态生成HTML内容并返回给浏览器,从而实现数据的实时渲染与个性化展示。这项技术的核心价值在于实现了业务逻辑与展示层的初步分离,提升了代码的可维护性和复用性。在众多应用场景中,从传统的企业级应用到需要服务端渲染的内部管理系统,掌握动态页面技术都是后端开发者的必备技能。本文聚焦于JSP(JavaServer Pages)这一经典技术,它作为JavaEE体系中的标准视图组件,是理解后续Spring MV

weixin_33841503的博客 487

Servlet 3.0 特性

http://tech.sina.com.cn/s/2009-11-19/00471138968.shtml 第1页:Servlet 3.0新特性简述第2页:Servlet中的注释第3页:元数据和通用注释第4页:针对Web框架的可插性 第5页:Servlet中的异步处理第6页:现有API的改进及小结 展开全部  关键词 文本Tag: Servlet IT业界 web开发  

Barving的专栏 573

记录rk3588 在Linux 6.1内核版本声卡 bug。

rk3588 Audio bug

Yongheng6的博客 855

servlet初始化参数的两种方法(1.配置web.xml文件 ,2.使用注释)

一、servlet初始化参数 使用标签初始化的参数是被应用程序中所有的servlet所共享。但是有时候我们需要为某一个特定的servlet配置参数,这个时候我们就需要使用servlet初始化参数。下边介绍两种servlet参数初始化的方法。 (1)配置web.xml文件 在web.xml文件中为当前web应用添加两个名为admin-email和admin-tel的ServletContext初始...

辰风的博客 1万+

别只当玩具!聊聊这个555金属探测器电路背后的电磁感应与RLC调谐原理

本文深入解析了555金属探测器电路的工作原理,重点探讨了电磁感应与RLC调谐原理。通过分析电感线圈的电磁特性、RLC谐振电路的行为以及555定时器的多重功能,揭示了这一看似简单的装置如何实现金属检测。文章还提供了灵敏度优化方案和常见问题解决方法,帮助读者从科学角度理解这一实用技术。

weixin_29204205的博客 477

基于E310的纯逻辑代码实现AD9361射频收发

基于微相科技的E310平台实现AD9361的射频收发功能。采用纯逻辑控制的方式,不需要PS参与。实现了用VIO控制收发使能,发射功率,收发频率,数据接口时序控制,接收增益,BIST测试等功能。

xiaomingzi55的博客 2332

Servlet注解——@WebInitParam多个InitParam的写法

百度了半天也没找到。。。。 使用@WebInitParam配置多个InitParam,使某些页面不被拦截。 在过滤器Filter.java下添加注解: @WebFilter(filterName="Filter",urlPatterns="/*", initParams = { @WebInitParam(name = "noLoginPaths", value ...

练涛 1万+

手把手教你用微信小程序实现智能硬件音视频通话(含Linux/RTOS适配)

本文详细介绍了如何利用微信小程序硬件框架(WMPF)和音视频SDK,在智能硬件(包括Linux与RTOS设备)上实现音视频通话功能。文章从架构设计、设备端SDK集成、小程序VOIP插件开发到跨平台调试与性能优化,提供了全链路实战指南,帮助开发者打通微信小程序与嵌入式设备间的实时音视频通信。

ooo22的博客 330

servlet3.0

Servlet3.0中Servlet的使用 目录 1.注解配置 2.异步调用 3.文件上传 相对于之前的版本,Servlet3.0中的Servlet有以下改进: l 支持注解配置。 l 支持异步调用。 l 直接有对文件上传的支持。 在这篇文章中我将主要讲这三方面的应用示例。 1.注解配置 在以往我们的Ser...

335

Python实战:用jieba和WordCloud打造电商评论情感分析工具(附完整代码)

本文详细介绍了如何使用Python的jieba分词和WordCloud库构建电商评论情感分析工具,涵盖数据预处理、情感分析、可视化展示等关键步骤,并提供完整代码实现。通过该工具,开发者可以高效分析电商评论数据,挖掘消费者情感倾向,为产品改进和决策提供数据支持。

weixin_30316097的博客 415

pip install mysql出现error: subprocess - exited-with-error的解决方案

本文主要介绍了pip install mysql出现error: subprocess - exited-with-error的解决方案,希望能对使用mysql的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 5万+

Servlet3.0新特性和Web容器如何整合SpringMVC

Servlet3.0新特性和如何启动SpringMVC

scorpio的博客 713

PHP 网页游戏开发入门教程

我们还链接了一个名为 “game.js” 的 JavaScript 文件,稍后将在其中编写游戏逻辑。这只是一个简单的示例,但它演示了如何使用 PHP 和 JavaScript 开发一个基本的网页游戏。以下是一个示例游戏的源代码和解释。现在,您可以在浏览器中打开 “game.php” 文件,即可看到一个带有红色游戏角色的游戏板。在上述代码中,我们使用 JavaScript 创建了一个游戏角色元素,并将其添加到游戏板容器中。最后,我们需要将游戏元素的样式设置为绝对定位,以便能够正确地控制它们的位置。

KkowServer的博客 678

深入拆解 Servlet 实战:纯手工打造与运行

本文通过8个步骤详细讲解了纯手工实现Servlet开发与Tomcat运行的全流程。从Tomcat安装、Servlet编写编译,到Web应用目录搭建、web.xml配置部署,再到启动验证和日志查看,全面覆盖Servlet开发核心环节。特别讲解了Servlet 3.0的@WebServlet注解部署方案,对比分析了XML与注解配置的差异,帮助开发者深入理解Servlet与Tomcat的底层运行原理。文章还提供了常见问题解答,包括编译依赖、配置方式差异和功能使用等关键点,是一份实用的Servlet开发实践指南。

ayst1994的博客 413

【QNX+Android虚拟化方案】129 - USB眼图参数配置

【QNX+Android虚拟化方案】129 - USB眼图参数配置

|~~~热爱生活、努力学习的小伙汁~~~| 821

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JavaWeb验证码实战:从Servlet绘图到安全优化全解析

验证码是Web开发中常见的安全组件,其核心原理是通过生成随机图形或文本,结合服务器端会话管理,来区分人类用户与自动化程序。在JavaWeb技术栈中,通常利用Servlet处理HTTP请求,通过Java2D API动态生成图片,并将验证码文本存储在Session中实现状态绑定。这一机制有效防止了暴力破解、刷票等恶意行为,提升了系统安全性。在实际应用中,验证码模块需兼顾安全防御与用户体验,例如通过增加字符扭曲、干扰线来对抗OCR识别,同时需注意在高并发场景下的性能优化。本文以JavaWeb验证码生成为切入点,深

weixin_30482181的博客 442

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Servlet3.0+下使用ServletContainerInitializer注册JAVA组件

【1】ServletContainerInitializer是什么 在web容器启动时为提供给第三方组件机会做一些初始化的工作,例如注册servlet或者filtes等,servlet规范中通过ServletContainerInitializer实现此功能。 每个框架要使用ServletContainerInitializer就必须在对应的jar包的META-INF/services 目录创...

小小默:进无止境 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Servlet配置初始化参数/配置参数

文章目录给某个Servlet配置初始化参数配置全局的参数 给某个Servlet配置初始化参数 配置全局的参数 所有的 Servlet 都可以访问全局参数。 在 Servlet 中获取全局参数的值: ServletContext servletContext = getServletContext(); String version = servletContext.getInitParameter("version"); ...

liaowenxiong的博客 2329

Servlet获取Web应用程序的初始化参数

ServletContext接口当Servlet启动时,会为每个Web应用创建一个唯一的ServletContext对象 表示当前Web应用,该对象不仅封装了当前Web应用的所用信息,并且实现了多个Servlet之间数据的共享获取Web应用程序的初始化参数 在web.xml文件中,不仅可以配置Servlet的初始化信息 还可以配置整个Web应用的初始化信息 配置如下<?xml version

天高任鸟飞 3471

servlet初始化参数配置方式

servlet初始化参数配置方式1. init-param在部署描述符中的节点下添加节点 <servlet> <init-param> <param-name>name</param-name> <param-value>servlet-value</param-value> </init-param> ... </servlet>之后在

darktrip 3127

Servlet3.0(一)--使用注解标注Servlet @WebServlet

http://www.cnblogs.com/xdp-gacl/p/4222902.html 一、Servlet3.0介绍   Servlet3.0是Java EE6规范的一部分,Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述,简化开发流程。 二、开发Servlet3.0程序的所需要的环境   开发

拼老命的程序猿 2万+

servlet初始化参数

针对具体servlet设置初始化参数web.xml<servlet> <servlet-name>myServlet</servlet-name> <servlet-class>TestInitParams</servlet-class> <init-param> <param-name>myEmail</param-name> <param-v

J_Shine的博客 2258

SpringMVC 全注解实现 (1) servlet3.0以上的容器支持

package com.xiuye.web.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; public class SpringWebAppInitializer extends AbstractAnnotationCon

修也 2951

JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet

一、Servlet的传统配置方式   在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 &lt;servlet&gt; 2 &lt;servlet-name&gt;ActionServlet&lt;/servlet-name&gt; 3 &lt;servlet-class&gt;me.gacl.web.contro...

weixin_33747129的博客 403

Servlet3.0注解init-param

Servlet3.0    默认不在有web.xml    可以在创建Servlet是第三步把勾打上生成web.xml,             3.0中采用@webServlet注解的方式来配置一些相应的参数,如下代码将如何使用3.0的新特性来访问init-param package com.study.servlet; import java.io.IOException

H U C 7375
上一篇: JavaWeb项目已添加外部扩展Oracle驱动文件后连接数提示java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver的两种解决办法及分析
下一篇: Oracle数据库中单引号' ' 和双引号" "的区别
Ninewind
博客等级 码龄8年 103粉丝 21原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值