java 设置运行参数上下文_第四章 Servlet上下文(JavaTM Servlet 规范3.1 )

Servlet Context(Servlet上下文)

4.1  Introduction to the ServletContext Interfacen ServletContext接口介绍

ServletContext 接口定义了运行在Web应用中的 servlet 的视图。容器提供者有义务提供在此 servlet 容器中 ServletContext 接口的一个实现。利用 ServletContext 对象,servlet 可以记录事件,获取资源的URL引用,设置和存储在此上下文中其它 Servlets 可以访问的属性。

4.2ServletContext接口的作用域

每一个部署到容器中的Web应用都有一个与之关联的 ServletContext 接口的实例对象。在容器被部署到多个虚拟机的情况下,对每一个JVM,Web 应用都有一个 ServletContext 的实例。

容器中没有被作为Web应用的一部分部署的 Servlets ,会隐含的作为“默认” Web应用的一部分并且有一个默认 ServletContext 。在一个分布式容器中,默认ServeletContext 是非分布式的并且只能存在于一个JVM中。

4.3初始化参数

下面的 ServletContext 接口方法允许 servlet 访问应用开发者在部署描述符中指定的与Web应用关联的上下文初始化参数:

getInitParameter

getInitParamertNames

初始化参数被应用开发者描述配置信息。典型的例子是网管的email地址,或者一个持有关键数据的系统的名称。

4.4配置方法

下面的方法从 Servlet 3.0 开始添加到 ServletContext ,以便可以编程式定义 servlets,filters 和映射他们的 Url 匹配。这些方法只能在应用的初始化期间被调用,要么是 ServletContextListener 实现的 contexInitialized 方法,要么是ServletContainerInitializer 实现的 onStartup 方法。除了添加 Servlets 和 Filters,还能查询与一个 Servlet 或者 Filter 对应的 Registration 对象实例,或者 servlets 或 filters 对应的所有 Registration 对象的Map。如果 ServletContext 传递给既没有在web.xml 或 web-fragment.xml中声明又没有@WebListener 注解的 ServletContextListener 的 contextInitialized 方法 ,在 ServletContext 中定义的用来编程式配置 servlets ,filters 和 listeners 的所有方法必须抛出 UnsupportedOperationException 异常。

4.4.1编程式添加和配置Servlets

对框架开发者来说能通过编程式添加一个 servlet 到给 context 是很有用的。例如,框架可以使用这个方法声明一个控制器 servlet。这个方法的返回值是一个ServletRegistration 或 ServletRegistration.Dynamic 对象,它允许你进一步设置这个 servlet 的其他参数,比如 init-params, url-mappings 等。这个方法有三个如下描述的重载版本:

4.4.1.1          addServlet(String servletName, String className)

这个方法允许应用编程式声明一个servlet。它用给定的名字和类名添加 servlet 到 servlet 上下文。

4.4.1.2          addServlet(String servletName, Servlet servlet)

这个方法允许应用编程式声明一个servlet。它用给定的名字和 servlet 实例添加 servlet 到 servlet 上下文。

4.4.1.3         addServlet(String servletName, Class extends Servlet> servletClass)

这个方法允许应用编程式声明一个servlet。它用给定的名字和一个 servlet 类的实例添加 servlet 到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值