在此,小编将为您详细解析Javaweb的四个作用域。四个主要作用域为:PageContext(jsp页面)、ServletRequest(一次请求)、HttpSession(一次会话)、ServletContext(完整的web应用)。我相信你对四个作用域并不陌生,但是你们真的知道吗?
一,页面上下文域:
这个范围就是整个JSP页面,在这四个作用域中最小;生命周期是请求JSP开始,响应结束后销毁。
二,服务请求域:
其范围是整个请求链(也存在请求转发);生命周期由服务器创建,然后再传递service方法。所有的请求结束,request生命结束。
三,HttpSession域:
适用范围为单一会议。当第一次调用request.getSession()方法时,服务器将检查是否已有相应的session,如果未在内存中创建session并返回。如果session在一段时间内未使用(默认为30分钟),那么服务器将销毁session。在异常关机(强制关机)的情况下,不过期的session将随服务器一起销毁。如果session提供的invalidate()调用,session就会被立即销毁。
注:服务器正常关闭,重新启动,Session对象执行钝化和激活操作。还可以看到激活后session的session的默认销毁时间内,激活后session仍然存在。不然Session不存在。当Session激活时,如果Javabean数据被挂起,没有实现Serializable就会在Session激活时消失。
四,服务器上下文域:
涉及整个Web应用程序。在将Web应用加载到容器时,创建代表整个web应用程序的ServletContext对象,并在服务器关闭或Web应用被删除时随之销毁ServletContext对象。
简单地说,JavaWeb的四个主要作用域如下:
PageContext:在此页面中有效,跳过网页无效;
ServletRequest:跨页的工作,通常用于表单提交等;
HttpSession:用于特定的会话;
ServletContext:始终有效,在服务器关闭后失效。