servlet中this.getServletContext(); this.getServletConfig().getServletContext(); 的区别

Posted Rookie12138

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet中this.getServletContext(); this.getServletConfig().getServletContext(); 的区别相关的知识,希望对你有一定的参考价值。

WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。

Servlet1:

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String data = "value";
        ServletContext context = this.getServletConfig().getServletContext();//获得ServletContext对象
        context.setAttribute("data", data);  //将data存储到ServletContext对象中
    }

Servlet2:

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext context = this.getServletContext();
        String data = (String) context.getAttribute("data");//从ServletContext对象中取出数据
        response.getWriter().print("data="+data);
    }

Servlet2拿到的context与Servlet1设置data的context是同一个对象,所以说servlet中this.getServletContext(); this.getServletConfig().getServletContext(); 本质上没有区别。

自己的笔记,不对请指正。。。











以上是关于servlet中this.getServletContext(); this.getServletConfig().getServletContext(); 的区别的主要内容,如果未能解决你的问题,请参考以下文章

javaWeb中servlet开发——Servlet生命周期

servlet中能够相互传值吗

Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签

Servlet基础

在servlet中怎样上传文件?

servlet如何配置?