Servlet(三)

一、ServletConfig 接口

1、概述

Servlet 接口的 init(ServletConfig config)方法有一个 ServletConfig 类型的参数。当 Servlet 容器初始化一个 Servlet 对象时,会为这个 Servlet 对象创建一个 ServletConfig 对象。 ServletConfig 对象中包含了 Servlet 的初始化参数信息,此外, ServletConfig 对象还与当前 Web 应用的 ServletContext 对象关联。 Servlet 容器调用 Servlet 对象的init(ServletConfig config)方法时,会把 ServletConfig 对象作为参数传给 Servlet 对象,init(ServletConfig config)方法会使得当前 Servlet 对象与 ServletConfig 对象之间建立关联关系。

2、方法

在这里插入图片描述
(1)getInitParameter(String name):根据给定的初始化参数名,返回匹配的初始化参数值。
(2)getInitParameterNames():返回一个 Enumeration 对象,里面包含了所有的初始化参数名。
(3)getServletContext():返回一个 ServletContext 对象
(4)getServletName():返回 Servlet 的名字,即 web.xml 文件中响应 <servlet>元素的<servlet-name>子元素的值。如果没有为 Servlet 配置<servlet-name>子元素,则返回 Servlet 的名字。
每个初始化参数包括一对参数名和参数值。在 web.xml 文件中配置一个 Servlet 时,可以通过 <init-param>元素来设置初始化参数。<init-param>元素的<param-name>子元素设定参数,<param-value>子元素设定参数值。

示例:
web.xml 中的配置

<servlet>
        <servlet-name>ServletDemo3</servlet-name>
        <servlet-class>ServletDemo3</servlet-class>
        <init-param>
            <param-name>color</param-name>
            <param-value>red</param-value>
        </init-param>
        <init-param>
            <param-name>food</param-name>
            <param-value>rice</param-value>
        </init-param>
        <init-param>
            <param-name>season</param-name>
            <param-value>spring</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletDemo3</servlet-name>
        <url-pattern>/hello3</url-pattern>
    </servlet-mapping>

java 代码:

public class ServletDemo3 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletConfig servletConfig = this.getServletConfig();
        String color = servletConfig.getInitParameter("color");
        System.out.println(color);
        Enumeration<String> initParameterNames = servletConfig.getInitParameterNames();
        while(initParameterNames.hasMoreElements()){
            String name = initParameterNames.nextElement();
            System.out.println(name + ":" + servletConfig.getInitParameter(name));
        }
        String servletName = servletConfig.getServletName();
        System.out.println("servletName:" + servletName);
    }

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

结果:
在这里插入图片描述

二、ServletContext 接口

ServletContext 是 Servlet 与 Servlet 容器之间进行通信的接口。Servlet 容器在启动一个 Web 应用时,会为它创建一个 ServletContext 对象。每个 Web 应用都有唯一的 ServletContext 对象。可以把 ServletContext 对象形象地理解为 Web 应用的总管家,同一个 Web 应用中的所有 Servlet 对象都共享一个总管家,Servlet 对象们可通过这个总管家来访问容器中的各种资源。
ServletContext 接口提供的方法可以分为以下几种类型:
(1)用于在 Web 应用范围内存取共享数据的方法。

  • setAttribute(String name, Object object):把一个 Java 对象与一个属性名绑定,并把它存入到 ServletContext 中。参数 name 指定属性名,参数 object 表示共享数据。
  • getAttribute(String name):根据参数给定的属性名,返回一个 Object 类型的对象,它表示 ServletContext 中与属性名匹配的属性值。
  • getAttributeNames():返回一个 Enumeration 对象,该对象包含了所有存放在 ServletContext 中的属性名。
  • removeAttribute(String name):根据参数指定的属性名,从 ServletContext 中删除匹配的属性。

(2)访问当前 Web 应用的资源。

  • getContextPath():返回当前 Web 应用的 URL 入口。
  • getInitParameter(String name):根据给定的参数名,返回 Web 应用范围内的匹配的初始化参数值。在 web.xml 文件中,直接在 <web-app> 根元素下定义的 <context-param> 元素表示应用范围内的初始化参数。
  • getInitParameterNames():返回一个 Enumeration 对象,它包含了 Web 应用范围内所有的初始化参数名。
  • getServletContextName():返回 Web 应用的名字,即 web.xml 文件中 <display-name>元素的值。
  • getRequestDispatcher(String path):返回一个用于向其他 Web 组件转发请求的 RequestDispatcherServlet 对象。

(3)访问 Servlet 容器中的其他 Web 应用。

  • getContext(String uripath):根据参数指定的 URI,返回当前 Servlet 容器中其他 Web 应用的 ServletContext 对象。

(4)访问 Servlet 容器的相关信息。

  • getMajorVersion():返回 Servlet 容器支持的 Java Servlet API 的主版本号。
  • getMinorVersion():返回 Servlet 容器支持的 Java Servlet API 的次版本号。
  • getServerInfo():返回 Servlet 容器的名字和版本。

(5)访问服务器端的文件系统资源。

  • getRealPath(String path):根据参数指定的虚拟路径,返回文件系统中的一个真实的路径。
  • getResource(String path):返回一个映射到参数指定的路径的 URL。
  • getResourceAsStream(String path):返回一个用于读取参数指定的文件的输入流。
  • getMimeType(String file):返回参数指定的文件的 MIME 类型。

(6)输出日志

  • log(String msg):向 Servlet 的日志文件中写日志。
  • log(String message,java.lang.Throwable throwable):向 Servlet 的日志文件中写错误日志,以及异常的堆栈信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值