avaWeb学习,快一起呀,干!】第三章 Servlet 核心接口(2)—— ServletConte

开门见山

ServletContext 接口是我们第二个要用的接口,ServletContext 也成为 Servlet 上下文,鬼才翻译

ServletContext 代表当前 Servlet 运行环境,是 Servlet 与 Servlet 容器之间直接通信的接口。

Servlet 容器在启动一个 Web 应用时,会为该应用创建一个唯一的 ServletContext 对象供该应用中的所有 Servlet 对象共享,Servlet 对象可以通过 ServletContext 对象来访问容器中的各种资源。

获取 ServletContext 对象有两种方式:

· 通过 ServletConfig 接口的 getServletContext() 方法获得 ServletContext 对象

· 通过 GenericServlet 抽象类的 getServletContext() 方法获得 ServletContext 对象,说白了还是调用 ServletConfig 的 getServletContext() 方法

ServletContext 接口中提供了这几种类型的方法:

· 获取应用范围的初始化参数的方法

· 存取应用范围域属性的方法

· 获取当前 Web 应用信息的方法

· 获取当前容器信息和输出日志的方法

· 获取服务器端文件资源的方法

一、获取应用初始化参数

在上一篇文章中我们也说了,可以通过 web.xml 配置应用范围的初始化参数。

而容器在应用程序加载时会读取这些配置参数,并存入 ServletContext 对象中。这样我们的 ServletContext 就可以获取这些参数

ServletContext 接口获取应用范围的初始化参数的方法:

· getInitParameter(String name) 返回 Web 应用范围内指定的初始化参数值。在 web.xml 中使用 元素表示应用范围内的初始化参数

· getInitParameterNames() 返回一个包含所有初始化参数名称的 Enumeration 对象

Web 应用范围的初始化参数的配置及获取

【代码】web.xml
avaWeb学习,快一起呀,干!】第三章 Servlet 核心接口(2)—— ServletConte_第1张图片
使用 ServletContext 对象获取初始化参数的值

【代码】ContextInitParamServlet.java
avaWeb学习,快一起呀,干!】第三章 Servlet 核心接口(2)—— ServletConte_第2张图片
【运行结果】
avaWeb学习,快一起呀,干!】第三章 Servlet 核心接口(2)—— ServletConte_第3张图片
总结一下,通过 web.xml 来配置应用范围的初始化参数,通过 ServletContext 对象来获取应用初始化参数

机房网真差,凎!

代码如下

【web.xml】

chapter03

   webSite

   www.itshixun.com
   adminEmail

   [email protected]
index.html

index.htm

index.jsp

default.html

default.htm

default.jsp

【ContextInitParamServlet.java】

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Enumeration;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class ContextInitParamServlet

*/

@WebServlet("/ContextInitParamServlet")

public class ContextInitParamServlet extends HttpServlet {

   private static final long serialVersionUID = 1L;

  

/**

 * @see HttpServlet#HttpServlet()

 */

public ContextInitParamServlet() {

    super();

}

   /**

    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

    */

   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

         // 设置响应到客户端的 MIME 类型及编码方式

         response.setContentType("text/html;charset=UTF-8");

         // 使用 ServletContext 对象获取所有初始化参数

         Enumeration paramNames = super.getServletContext().getInitParameterNames();

         // 使用 ServletContext 对象获取某个初始化参数

         String webSite = super.getServletContext().getInitParameter("webSite");

         String adminEmail = super.getServletContext().getInitParameter("adminEmail");

         // 获取输出流

         PrintWriter out = response.getWriter();

         // 输出响应结果

         out.print("

当前 Web 应用的所有初始化参数:"); while(paramNames.hasMoreElements()) { String name = paramNames.nextElement(); out.print(name + " "); } out.println("

webSite 参数的值:" + webSite); out.println("adminEmail 参数的值:" + adminEmail + "

"); }

}

你可能感兴趣的:(avaWeb学习,快一起呀,干!】第三章 Servlet 核心接口(2)—— ServletConte)