天天看点

Javaweb学习笔记之ServletContext(三):通过 ServletContext 域对象在不同 Servlet 之间共享数据

保存数据到 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);
	}

}
           

继续阅读