ServletContext
ServletContext:WEB容器在启动时,它会为每个WEB应用创建一个对应的ServletContext对象,它代表当前WEB应用。其作用域比request、cookie、session都要大,是web应用的一个公用空间,可以被所有的Servlet访问。
如何获取ServletContext?ServletContext对象保存在ServletConfig对象中,可以通过ServletConfig对象获取;此外,也可以通过HttpSession对象获取。
ServletContext中的数据会长时间的保存在服务器,因此不要向servletContext中添加过大的数据。ServletContext当web应用关闭、reload时消失,保存在ServletContext中的所有数据将消失。ServletContext中的存储的属性是可以被所有Servlet访问的,因此可以用来存储一些web应用全局的属性,如网站计数器:
i. 首先我们要明确一点,怎样才算是一次有效的点击?不同的网站有不同的标准,如下
A:不同的IP访问过该页面,算一次有效点击;如果是同一个IP在一定时间内不管访问多少次都算一次;
B:只要某个页面被访问,算一次;
C:用户登录—退出,算一次;
ii. 当web服务器宕机或关闭后,我们的计数器就被清空了,怎么能够保证计数器稳定的增长?如果允许一定范围内的误差,可以开一个后台线程,每隔一定时间(如30min)将计数器的数值进行持久化操作。
☞利用servletContext对象读取资源文件,如properties文件;可以读取web目录和WEB-INF目录下的文件,还可以得到某一资源的全路径,而用类加载器只能读取src目录下的文件。