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

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容器设置共享的初始化参数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值