ServletConfig接口
一个ServletConfig实现类的对象,对应一段web.xml中Servlet的配置信息
ServletConfig是由Servlet容器实例化
通过getServletConfig方法获取servletConfig对象
Servlet实例化的同时实例化对应的ServletConfig对象,并传入到init(ServletConfig config), init(ServletConfig config)方法会使得当前 Servlet 对象与 ServletConfig对象之间建立关联关系
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应用的配置信息。
数据共享
- 在客户端页面和服务器端程序(Servlet)之间,通过请求(request)的getParameter()方法共享数据
getParameter()是获取POST/GET传递的参数值,是String类型的。 - 在请求(request)和请求(request)之间,通过request的set/getAttribute方法
getAttribute()是获取对象容器中的数据值;用request.setAttribute()方法赋值后,用request.getAttribute()方法可以取得,在页面上也能取得。 - 同一个Servlet对象,通过ServletConfig对象共享数据
- 在整个Web应用范围内,通过ServletContext的set/getAttribute方法共享数据
总结:
- set/getAttribute(),应用于request与request之间(请求转发)
- getParameter(),应用于客户端页面与Servlet之间(参数来自于Html、JSP)
- getServletConfig(). getInitParameter(“param”),应用于同一个Servlet对象
- getServletContext(). getInitParameter(“param”),应用于整个Web应用范围