1.ServletContext概述
1.1servletContext概述
ServletContext: 是一个全局对象, 上下文对象. 小技巧: 以后只要看见有 XXXContext ,, 这是一个上下文!
服务器为每一个应用(项目)都创建了一个ServletContext对象。 ServletContext属于整个应用的,不局限于某个Servlet。 一个应用就有一个ServletContext,它是由服务器(Tomcat)创建。
1.2ServletContext作用
1. 作为域对象存取数据,让Servlet共享
2. 获得文件MIME类型(文件下载)
3. 获得全局初始化参数 web.xml配置的参数
. 获取web资源路径 可以读取文件。
1.3小结
- ServletContext是一个全局对象, 服务器会给每一个项目(工程)都创建一个ServletContext对象, 属于整个项目的, 不局限于某个Servlet
- 作用
- 作为域对象存取数据,让Servlet共享
- 获得文件mini类型(文件上传和下载)
- 获得全局初始化参数
- 获取web资源路径
1.4API
- getAttribute(String name) ;向ServletContext对象的map取数据
- setAttribute(String name, Object object) ;从ServletContext对象的map中添加数据
- removeAttribute(String name) ;根据name去移除数据
1.5存数据
package com.itheima.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;
import java.io.IOException;
@WebServlet("/context01")
public class DemoServletContext01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("context01::存数据~");
//往servletcontext里面存数据
getServletContext().setAttribute("username","张三");
//马上取数据
String username = (String) getServletContext().getAttribute("username");
System.out.println("context01:取到的数据是: " + username);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
测试结果
存数据
取到的数据是 张三