ServletConfig和ServletContext详解

ServletConfig和ServletContext详解ServletConfig和ServletConTextServletConfig一、ServletConfig概述二、ServletConfig常用方法ServletConfig一、Servle

ServletConfig接口

一、ServletConfig介绍

  1. 概述:ServletConfig是Servlet的配置参数对象,在Servlet的规范中,允许为每一个Servlet都提供一些初始化的配置,所以每一个Servlet都有一个ServletConfig。
  2. 作用: 当Servlet容器初始化Servlet时,Servlet容器会给Servlet的init()方法传入一个ServletConfig对象,即传入一些配置信息给Servlet。
  3. 生命周期: 应用一加载则创建,应用停止则被销毁;
  4. 创建时间: 创建完Servlet对象时,接着创建。Servletconfig对象

二、ServletConfig常用方法

在这里插入图片描述

三、ServletConfig的配置方式

  • 在<servlet>标签种,通过<init-param>标签来配置。有两个子标签:
      1. <param-name>:代表初始化参数的key。
      2. <param-value>: 代表初始化参数的value。
    在这里插入图片描述
    注意: 这里配置的参数,只作为演示用,无实际意义。

四、ServletConfig实现步骤(练习)

  1. 定义一个类,继承HttpServlet。
  2. 重写doGet()和doPost()方法。
  3. 在web.xml进行配置。
  4. 在请求方法中通过请求对象获取到ServletConfig对象。
  5. 然后再通过getInitParameter()方法获取到配置的初始化参数。
  6. 部署并启动项目。
  7. 通过浏览器测试。

ServletContext对象

一、ServletConText介绍

  • 概述:ServletContext对象是一个应用上下文对象,也是一个域对象。表示Servlet应用程序,每个web应用程序都只有一个ServletContext对象。

  • ServletContext对象的作用:
    (1). 有了ServletContext对象,就可以共享从应用程序中的所有资源访问到的数据信息,并且可以动态注册web对象。
    (2).可以获得应用域的全局初始化参数,以及达到Servlet之间的数据共享
    (3).可以作为域对象在整个应用中共享数据;域对象即在一定的作用范围内实现资源共享;
    (4).可以用来获取应用中的资源在服务器上的绝对路径;
    (5).获取文件的mime类型: 在网络传输中,并不是以扩展名来区分文件的类型,都是以mime类型;如:text/html;表示一个html文件。

  • 生命周期: 应用一加载则创建,应用被停止则销毁

  • 创建时间: 加载web应用时,创建ServletContext对象。

二、域对象

  •   域对象指的是对象有作用域,即有作用范围。域对象可以实现数据的共享,不同作用范围对象,共享数据的范围能力也不同。
  •   在Servlet规范中,一共有4个域对象。其他三个是:request请求域PageContext页面域session会话域。ServletContext就是其中的一个。是web应用中最大的作用域,也叫application应用域,可以实现整个应用之间的数据共享!

三、ServletContext配置方式

  •   ServletContext不像ServletConfig接口在Servlet标签里配置,而是针对于整个应用的配置,也叫全局的初始化参数;
  •   在<web-APP>标签中,通过<context-param>标签来配置,有两个子标签:
      1. <param-name>: 代表全局初始化参数的key。
      2.<param-value>: 代表全局初始化参数的value。
    在这里插入图片描述

四、ServletContext常用方法

在这里插入图片描述

 //获取当前项目的虚拟目录
        System.out.println("当前虚拟目录:"+servletContext.getContextPath());
        //获取服务器信息
        System.out.println("服务器和版本信息:"+servletContext.getServerInfo());
        //获取浏览器访问路径的绝对路径
        System.out.println("虚拟目录所在的绝对路径"+
                servletContext.getRealPath(servletContext.getContextPath()));
        //向域中存数据
        servletContext.setAttribute("name","迪丽热巴");
        //获取统一资源标识符:虚拟路径/资源访问路径
        System.out.println("获取统一资源标识符:"+req.getRequestURI());
        //获取统一资源定位符: 浏览器的访问地址
        System.out.println("获取统一资源定位符:"+req.getRequestURL());
        System.out.println("获取虚拟目录:"+req.getContextPath());
        System.out.println("获取Servlet映射路径:"+req.getServletPath());
        System.out.println("获取访问者ip地址:"+req.getRemoteAddr());
        System.out.println("获取请求的消息数据:"+req.getQueryString());

注意:
存放文件的三个路径:

  1. Src下: 代码 src下的文件,存在于web/Web-INF/classes/
  2. web下: 静态页面 /
  3. Web-INF下: 配置文件 /web/Web-INF/

五、ServletContext实现步骤

在这里插入图片描述

今天的文章ServletConfig和ServletContext详解分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/63557.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注