ServletConfig和ServletContext接口

ServletConfig接口

一个ServletConfig实现类的对象,对应一段web.xml中Servlet的配置信息
ServletConfig是由Servlet容器实例化
通过getServletConfig方法获取servletConfig对象
在这里插入图片描述
Servlet实例化的同时实例化对应的ServletConfig对象,并传入到init(ServletConfig config), init(ServletConfig config)方法会使得当前 Servlet 对象与 ServletConfig对象之间建立关联关系
ServletConfig和ServletContext接口_第1张图片
String getInitParameter(String):通过名称得到初始化参数的值
在这里插入图片描述
打印结果:
在这里插入图片描述
读取< init-param>数据。< init-param>元素的< param-name>子元素设定参数名,< param-value>子元素设定参数值。(在Servlet-class下面,load-on-startup上面)

ServletContext接口

每个Web应用启动后,Servlet容器都会创建唯一 的一个ServletContext对象,该对象包含整个Web程序的信息,提供servlet与容器的交互
在自己定义的Servlet中,可以通过 getServletContext()方法获得ServletContext对象
在这里插入图片描述
读取< context-param>内的数据
在这里插入图片描述
打印结果:
在这里插入图片描述

ServletContext与servlet.servletConfig之间的关系

  • 一个Servlet对应一个ServletConfig
  • 所有的Servlet共享一个ServletContext对象
  • 可以通过ServletConfig接口的实例获得与Servlet相关的配置信息,通过ServletContext接口的实例获取整个Web应用的配置信息。

数据共享

  1. 在客户端页面和服务器端程序(Servlet)之间,通过请求(request)的getParameter()方法共享数据
    getParameter()是获取POST/GET传递的参数值,是String类型的。
  2. 在请求(request)和请求(request)之间,通过request的set/getAttribute方法
    getAttribute()是获取对象容器中的数据值;用request.setAttribute()方法赋值后,用request.getAttribute()方法可以取得,在页面上也能取得。
  3. 同一个Servlet对象,通过ServletConfig对象共享数据
  4. 在整个Web应用范围内,通过ServletContext的set/getAttribute方法共享数据
总结:
  • set/getAttribute(),应用于request与request之间(请求转发)
  • getParameter(),应用于客户端页面与Servlet之间(参数来自于Html、JSP)
  • getServletConfig(). getInitParameter(“param”),应用于同一个Servlet对象
  • getServletContext(). getInitParameter(“param”),应用于整个Web应用范围

你可能感兴趣的:(JavaEE)