ServletContext应用域详解

ServletContext(应用域): ServletContext被称为Servlet上下文对象(Servlet对象的四周环境对象。)。
一个Servlet对象对应一个ServletConfig。100个Servlet对象则对应100个ServletConfig对象。
只要在同一个webapp当中,只要在同一个应用当中,所有的Servlet对象都是共享同一个ServletContext对象的。

生命周期:ServletContext对象在服务器启动阶段创建,在服务器关闭的时候销毁。ServletContext对象是应用级对象。
如果所有的用户共享一份数据,数据量小,并且很少被修改,可以将这些数据放到ServletContext这个应用域中
为什么数据量要小?
因为数据量比较大的话,太占用堆内存,并且这个对象的生命周期比较长,服务器关闭的时候,这个对象才会被销毁。
大数据量会影响服务器的性能。占用内存较小的数据量可以考虑放进去。
为什么这些共享数据很少的修改,或者说几乎不修改?
所有用户共享的数据,如果涉及到修改操作,必然会存在线程并发所带来的安全问题。所以放在ServletContext对象中的数据一般都是只读的。
向ServletContext应用域中存储数据,也等于是将数据存放到缓存cache当中了。
ServletContext接口中常用方法:

public String getInitParameter(String name); // 通过初始化参数的name获取value
public Enumeration<String> getInitParameterNames(); // 获取所有的初始化参数的name
以上两个方法获取
	<context-param>
    		<param-name>pageSize</param-name>
    		<param-value>10</param-value>
		</context-param>
的配置信息,一般一个项目中共享的配置信息会放到以上的标签当中。
public String getContextPath();// 获取应用的根路径(非常重要)
public String getRealPath(String path);// 获取文件的绝对路径
public void log(String message);//将指定的消息写入 servlet 日志文件,通常是事件日志。
public void log(String message, Throwable t);//将给定异常的解释性消息和堆栈跟踪写入 servlet 日志文件。
以上两个方法会记录到服务器的logs里
// Tomcat服务器的logs目录下都有哪些日志文件?
//catalina.2021-11-05.log 服务器端的java程序运行的控制台信息。
	//localhost.2021-11-05.log ServletContext对象的log方法记录的日志信息存储到这个文件中。
	//localhost_access_log.2021-11-05.txt 访问日志
public void setAttribute(String name, Object value); //存(ServletContext应用域中存数据)map.put(k, v)
public Object getAttribute(String name); //取(ServletContext应用域中取数据)Object v = map.get(k)
public void removeAttribute(String name); //删(删除ServletContext应用域中的数据)map.remove(k)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忆亦何为

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值