jsp中 application 、EL表达式中applicationScope 、 Java中servletContext 关系

首先分别说说三者是什么:java


  ①jsp中 application:数据库

application 对象也是在服务器启动就生成一个,服务器关闭,其才释放。保证了用户在不一样的页面间浏览能够获取共享的公共信息。安全


  ②EL表达式中applicationScope服务器

 ${applicationScope.bizCodes[category]}" ------------EL表达式session


   jsp中由于咱们并无指定哪个范围的username,因此它会依序从Page、Request、Session、Application范围查找。
  假如途中找到username,就直接回传,再也不继续找下去,可是假如所有的范围都没有找到时,就回传null。
 属性范围在EL中的名称app

         【jsp中】       【EL表达式中】                     
         Page          PageScope
         Request          RequestScope
         Session          SessionScope
         Application      ApplicationScopejsp

 

  ③Java中servletContextide

ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。request,一个用户可有多个;session,一个用户一个;而servletContext,全部用户共用一个。因此,为了节省空间,提升效率,ServletContext中,要放必须的、重要的、全部用户须要共享的线程又是安全的一些信息。学习

换一种方式说吧,运行在Java虚拟机中的每个Web应用程序都有一个与之相关的Servlet上下文。ServletContext对象是Web服务器中的一个已知路径的根,Servlet上下文被定位于http://localhost:8080/项目名.以 /项目名 请求路径(称为上下文路径)开始的全部请求被发送到与此ServletContext关联的Web应用程序。一个ServletContext对象表示了一个Web应用程序的上下文。this

Servlet上下文:Servlet上下文提供对应用程序中全部Servlet所共有的各类资源和功能的访问。Servlet上下文API用于设置应用程序中全部Servlet共有的信息。Servlet可能须要共享他们之间的共有信息。运行于同一服务器的Servlet有时会共享资源,如JSP页面、文件和其余Servlet。


举例:

地区信息等,全国的省市县市固定的,全部咱们就能够服务器启动的时候,咱们就将数据放入servletContext中,避免屡次请求数据库。



三者的区别:


其实学习前最好先学习Servlet,
是在Servlet基础上发展而来的,jsp也是一种特殊的servlet。
其application对象在Servlet中是ServletContext的实例对象,
能够在你写的Servlet中经过this.getServletContext();方法来获取一个ServletContext实例对象.
好比:
 this.getServletContext().setAttribute("users",userList);

而后在显示层调用仍是使用application.getAttribute("users");
来实现.

因此全局变量在servlet中叫ServletContext;在jsp中叫application;而application在EL表达式中叫:applicationScope 。
相关文章
相关标签/搜索