相同:其实servletContext和application 是一样的,就相当于一个类创建了两个不同名称的变量。在
servlet中ServletContext就是application对象。大家只要打开jsp编译过后生成的Servlet中的
_jspService()方法就可以看到如下的声明:
ServletContext application = null;
application = pageContext.getServletContext();
不同:两者的区别就是application用在jsp中,servletContext用在servlet中。application和page
request session 都是JSP中的内置对象,在后台用ServletContext存储的属性数据可以用
application对象获得。
而且application的作用域是整个Tomcat启动的过程。
例如: ServletContext.setAttribute("username",username);
则在JSP网页中可以使用 application.getAttribute("username");
来得到这个用户名。
1、servletcontext主要用在servlet中,当然也可以在jsp中使用;
2、application只在jsp页面中使用;
3、application和servletcontext都保存容器的全局信息;
4、application是对servletcontext在jsp中应用的包装,因此它们其实表示的是同一个对象,用application保存的属性可以用servletcontext来读取,反之亦同;
5、在jsp中可以直接使用application,也可以用getServletContext()方法来获得servletcontext对象,此对象的使用和application完全一样;