一、概述
Servlet上下文对象,用的挺多,但是简单
是当前整个应用程序都可以使用的唯一的对象
是整个项目的共享区间,任意的servlet和jsp都是可以使用的
一个servlet上下文对象如果设置了数据,然后其他的servlet也可以使用
示例:
Context1Servlet.java:
package com.qfedu.a_servlet;
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;
import java.io.IOException;
/**
* @author xue_yun_xiang
* @create 2021-04-09-21:36
*/
@WebServlet("/Context1Servlet")
public class Context1Servlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取上下文对象
ServletContext servletContext = request.getServletContext();
//2.获取服务器信息 版本名字
String serverInfo = servletContext.getServerInfo();
//3.获取项目的根目录
String contextPath = servletContext.getContextPath();
System.out.println(contextPath);
servletContext.setAttribute("a","我是servletContext1");
servletContext.setAttribute("person",new Person());
}
}
Context2Servlet.java:
package com.qfedu.a_servlet;
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;
import java.io.IOException;
/**
* @author xue_yun_xiang
* @create 2021-04-09-21:46
*/
@WebServlet("/Context2Servlet")
public class Context2Servlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
ServletContext servletContext = request.getServletContext();
Object a = servletContext.getAttribute("a");
System.out.println(a);
Person person = (Person)servletContext.getAttribute("person");
System.out.println(person);
}
}
Person.java:
package com.qfedu.a_servlet;
/**
* @author xue_yun_xiang
* @create 2021-04-09-21:42
*/
public class Person {
private String name = "王二";
private int age = 20;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}