保存数据到 ServletContext 域对象:
package com.demo.h_servletcontext;
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 对象就是一个 域对象;
域对象的方法:
保存数据:setAttribute(String name, Object object)
获取数据:getAttribute(String name)
删除数据:removeAttribute(String name)
ServletContext 域对象作用范围:在整个 web 应用中都有效;
*/
@SuppressWarnings("serial")
@WebServlet("/ContextDemo3")
public class ContextDemo3 extends HttpServlet {
/**
* 保存数据
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取 ServletContext 对象
ServletContext servletContext = this.getServletContext();
// 保存数据
servletContext.setAttribute("name", "张三");
// 保存对象数据
servletContext.setAttribute("student", new Student("李四", 22));
System.out.println("保存成功");
}
class Student{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
}
从 ServletContext 域对象获取数据:
package com.demo.h_servletcontext;
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;
import com.demo.h_servletcontext.ContextDemo3.Student;
@SuppressWarnings("serial")
@WebServlet("/ContextDemo4")
public class ContextDemo4 extends HttpServlet {
/**
* 获取数据
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取 ServletContext 对象
ServletContext servletContext = this.getServletContext();
// 获取数据
String name = (String)servletContext.getAttribute("name");
System.out.println("name=" + name);
Student student = (Student)servletContext.getAttribute("student");
System.out.println(student);
}
}