ServletContext可以想象为服务器中的一个公用空间,可以被所有的客户访问
ServletContext也是以“名-值”的形式保存数据,其用法有:
- 得到ServletContext:this.getServletContext();
- 添加属性:setAttribute(String name,Object ob);
- 得到值: getAttribute(String),返回Object
- 删除属性:removeAttribute(String name)
ServletContext中的属性的生命周期从创建开始,到服务器关闭而结束
注意:因为存在ServletContext中的数据会长时间的保存在服务器,会占用内存,因此我们建议不要向serveltContext中添加过大的数据
例子——向ServletContext中添加属性:
/**
* @(#)TestServletContext1.java
*向ServletContext中添加属性
*
* @author
* @version 1.00 2017/3/30
*/
package com.chongqing;
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class TestServletContext1 extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
try {
res.setContentType("text/html;charset=UTF-8");
PrintWriter pw=res.getWriter();
ServletContext sc = this.getServletContext(); //得到ServletContext
sc.setAttribute("myContext","TestServletContext");//往ServletContext添加属性
pw.println("向servletContext中添加了一个属性:myContext");
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
例子——获得ServletContext中的属性:
/**
* @(#)TestServletContext2.java
*获得ServletContext中的属性
*
* @author
* @version 1.00 2017/3/30
*/
package com.chongqing;
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class TestServletContext2 extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
try {
res.setContentType("text/html;charset=UTF-8");
PrintWriter pw=res.getWriter();
ServletContext sc = this.getServletContext(); //得到ServletContext
String myfo = (String)sc.getAttribute("myContext");//从ServletContext获取属性myContext的值
pw.println("从ServletContext获取属性myContext的值为:"+myfo);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}