zoukankan      html  css  js  c++  java
  • Servlet上下文

    Servlet上下文

    Servlet上下文有叫做: ServletContext, 一个WEB应用只有一个ServletContext

    jsp中的application对象实质上就是ServletContext上下文的对象

    上下文特点

    1. 当WEB服务器启动时,会为每一个WEB应用程序创建一块共享的存储区域。

    2. ServletContext也叫做“公共区域”,也就是同一个WEB应用程序中,所有的Servlet和JSP都可以共享同一个区域。

    3. ServletContext在WEB服务器启动时创建,服务器关闭时销毁。

    获取上下文对象

    再servlet类中:

    ServletContext context = this.getServletContext(); // 获取上下文对象
    // context.setAttribute(<String>, <Object>); // 往上下文中存数据
    // context.removeAttribute(<String>); // 删除上下文中的某一个数据
    

    存入的数据整个WEB应用的任何servlet都能获取到, 关闭web服务器的时候失效

    代码示例

    AServlet类 (Servlet类)

    @WebServlet(name = "AServlet", value = "/a")
    public class AServlet 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 {
            // 获取上下文对象
            ServletContext context = this.getServletContext();
            String name = "jack";
            // 存入一个数据
            context.setAttribute("name", name);
        }
    }
    

    BServlet类 (Servlet类)

    @WebServlet(name = "BServlet", value = "/b")
    public class BServlet 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 {
            // 获取上下文对象
            ServletContext context = this.getServletContext();
            // 获取上下文中的数据
            String name = (String) context.getAttribute("name");
            response.getWriter().write(name);
        }
    }
    

    浏览器先访问 /a, 然后访问 /b 浏览器显示:

    jack
    

    上下文和Session的区别

    • 作用范围不同

      HttpSession是针对每一个客户端浏览器单独有一个。

      ServletContext是针对每一个WEB应用程序有一个

    • 存活时间不同:

      HttpSession第一次访问服务器时创建,session超时后销毁(默认无响应30分钟后)

      ServletContext服务器启动时创建,服务器停止时销毁。

  • 相关阅读:
    Thread中带参方法无法使用之解决方案
    项目相关的风险要素及分类
    AspNetPager分页示例之DataGrid(PostBack分页)
    Substitution 类 (asp.net 2.0 )
    自定义HTTP处理程序显示图片(asp.net 2.0)
    常见文件扩展名和它们的说明
    基于.NET的开源GIS项目(转)
    项目开发流程标准
    AOP(Aspect Oriented Programming) 面向方面编程
    项目实施及管理标准
  • 原文地址:https://www.cnblogs.com/zpKang/p/13124874.html
Copyright © 2011-2022 走看看