Servlet的三大作用域
request
request是一个请求,只要发送一个请求就会创建一个request对象,这个对象只在本次请求中有效。
一般用于不同页面之间的同一请求,比如表单的传值,a链接的传值跳转等。
request对象常用的方法有:request.setAttribute(), request.getAttribute(), request.removeAttribute(), request.getParameter()等。
session
session是一次会话,服务器会为每一个会话创建一个session对象,session中的数据可以被本次会话中的所有servlet访问,会话是从浏览器打开开始,到关闭浏览器结束。
session常用于登录验证,登录成功后浏览器会为其分配一个session键值对,之后的访问权限判断键值对就可以了。
session对象常用的方法有session.setAttribute(); session.getAttribute(); session.removeAttribute();
session对象的创建,在servlet中使用HttpSession session = request.getSession();l的方式来创建;因为session是JSP的内置对象,所以在jsp页面中可以通过<%session.setAttribute(“name”,”name”)%>的方式使用session
session对象的销毁。可以通过设置他的有效时间从而达到销毁的目的,session.setMaxInactiveInterval(10);还可以直接注销掉session.invalidate();
用户第一次访问服务器的时候服务器会自动给其分配一个sessionID,用户将该sessionID存放到本地,下次使用的时候就不会再次创建了。
application
application是应用程序作用域,是从程序开始运行到运行停止。
保存在application作用域中的值,只要程序没有停止运行,都可以获取。
此作用域一般不使用。
注意
如果能使用request作用域就使用request作用域,如果request作用域用不了,则使用session作用域。会话级别的数据要是用session作用域,比如说登录信息,银行账号,如果数据是系统级别的,那么使用application作用域
---------------------
作者:Sunny-安好
来源:CSDN
原文:https://blog.csdn.net/qq_19001241/article/details/77924213
版权声明:本文为博主原创文章,转载请附上博文链接!
相同点:
ServletContext 就是application!
说明:
其实servletContext和application 是一样的,就相当于一个类创建了两个不同名称的变量。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");
https://www.cnblogs.com/vice/p/9125431.html