文章目录
Servlet之间数据共享方案
一 ServletContext接口
-
介绍:
- ServletContext接口来自于Servlet规范
- ServletContext接口实现类由HTTP服务器厂商提供
- ServletContext接口修饰对象被称为全局作用域对象
- 来自于用一个网站下的Servlet都可以使用全局作用域对象进行数据共享
-
使用:
myWeb网站中OneServlet通过全局作用域对象向TwoServlet提供共享数据
运行OneServlet
//1.通过请求对象向Tomcat索要当前网站中全局作用域对象
ServletContext application = request.getServletContext()
//2.将数据添加到全局作用域对象中作为共享数据
application.setAttribute(“共享数据名”,“共享数据”);
运行TwoServlet
//1.通过请求对象向Tomcat索要当前网站中的全局作用域对象
ServletContext application = request.getServletContext();
//2.从全局作用域对象中读取数据
Object 共享数据 = application.getAttribute(“共享数据名”);
-
生命周期 🔺
- 在tomcat启动时,自动为当前网站创建一个全局作用域对象
- 在Tomcat运行时,一个网站中有且只能有一个全局作用域对象
- 在Tomcat关闭时,自动销毁网站中的全局作用域对象
-
存在的问题
- 如果不进行限制,无限的向全局作用域对象添加数据。导致服务器计算机内存消耗殆尽
- 容易导致数据污染
二 Cookie类
-
介绍:
- 来自于Servlet规范提供的一个工具类
- 如果两个Servlet为同一个用户/同一个浏览器服务,此时借助cookie实现数据共享
- cookie在现实生活中就类似会员卡
-
实现原理
-
使用:
myWeb网站中OneServlet通过Cookie与TwoServlet实现数据共享
运行OneServlet
/