ServletContext、ServletConfig 对象

ServletContext 对象

作用:
解决了 不同用户 的数据共享问题

作用域:整个项目内

生命周期:服务器启动到服务器关闭

特点:
服务器进行创建、用户共享、一个项目只有一个

原理:
ServletContext 对象由服务器进行创建,一个项目只有一个ServletContext 对象。不管在项目的任意位置进行获取得到的都是同一个对象,那么不同用户发起的请求获取到的也就是同一个对象了,该对象由用户共同拥有。

使用:
获取 ServletContext 对象

/*以下三种方式获取的都是同一个ServletContext 对象*/
ServletContext context1 = this.getServletContext();		//第一种方式(常用)

ServletContext context2 = this.getServletConfig().getServletContext();		//第二种方式

ServletContext context3 = req.getSession().getServletContext();		//第三种方式

使用作用域进行共享数据流转

context.setAttribute("message", "我是一个ServletContext对象");		//数据存储

//另一个Servlet中写
context.getAttribute("message");		//数据获取
  • 注意:
    不同的用户可以给ServletContext对象进行数据的存取
    获取的数据不存在返回null

获取 web.xml 中的全局配置的全局数据的值

<!-- 作用:将静态数据和代码进行解耦 -->
<context-param>
	<param-name>键名</param-name>
	<param-value>小李</param-value>
</context-param>
String str = context.getInitParameter("键名");

String str = context.getInitParameterNames();		//返回键名的枚举

获取 webContext 下项目资源流对象

InputStream is = context.getResourceAsStream("/doc/a.txt");	

获取 webContext下资源绝对路径

String path = context.getRealPath("/doc/a.txt");		//动态获取该文件的绝对路径

案例:网页浏览器次数统计
在成功登录时,创建计数器并自增,然后存储到ServletContext对象中。
在主界面中取出计数器的数据并显示。

ServletConfig 对象

作用:
ServletConfig 对象是 Servlet 的专属配置对象,每个 Servlet 都单独拥有一个 ServletConfig 对象,用来获取 web.xml 中的配置信息。

使用:
获取 ServletConfig 对象

<servlet>
	<param-name>config</param-name>
	<param-value>urf-8</param-value>
</servlet>
ServletConfig config = this.getServletConfig();		//获取 ServletConfig 对象
String code = config.getInitParameter("config");		//获取 web.xml 中 servlet 的配置信息

猜你喜欢

转载自blog.csdn.net/Xxacker/article/details/85047148