简介:
所有的域对象都有存取数据的功能,因为域对象内部有一个Map用来存储数据;
ServletContext接口:
javax.servlet
Interface ServletContext
public interface ServletContext
- 获取方法:public ServletContext getContext(String uripath)
下面是ServletContext对象用来操作数据的方法:
NO |
方法名 |
参数 |
返回值 |
功能 |
1 |
public void setAttribute(String name,Object object)
|
name - 一个字符串,指定属性的名称 object - 表示要绑定的属性的 Object |
无 | 设置指定名称的servelet属性。如果指定的名称已用于某个属性,则此方法将用新属性替换该属性。 |
2 | public Object getAttribute(String name) | name - 一个字符串,指定属性的名称 | Object类型 | 获取指定名称的servlet属性,如果没有则为空 |
3 | public Enumeration getAttributeNames() | 无 | 属性名称的枚举 | 获取属性名称 |
4 |
public void removeAttribute(String name)
|
|
无 | 删除指定名称的属性 |
代码实现:
AServlet向ServletContext对象中保存数据:
package cn.ServletContext.ml;
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*向ServletContext中保存数据
*/
@WebServlet("/ContextTest")
public class AServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**
* 调用ServletContext对象
* 调用其setAttribute()方法完成保存数据
*/
ServletContext app = this.getServletContext();
app.setAttribute("name","张三");
}
}
BServlet使用ServletContext对象获取数据:
package cn.ServletContext.ml;
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 从ServletContext中获取数据
* @author CDU_LM
*
*/
@WebServlet("/BServlet")
public class BServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**
* 获取ServletContext对象
* 调用getAttribute()方法
*/
ServletContext app = this.getServletContext();
Object name = app.getAttribute("name");
System.out.println(name.toString());
}
}
请求结果:
浏览器没发出一次请求就会输出一次结果。