您的位置:首页 > 移动开发

request,response,session,application四者之间的作用域联系以及各自的运行机制

2017-10-22 17:46 531 查看
request:服务器获取用户请求;
response:服务器答复用户请求的资源;


session:用户使用服务器开始到结束的过程;
application:网站服务器启动到停止的过程;


在asp中,作用域可分为四种:  
①仅仅用于JSP中的page其作用域为在当前页面有效  (这里了解就好)
request其作用域为在当前http请求中有效 
session其作用域为在当前会话中有效  
application其作用域为在所有应用程序中有效,应用程序就是访问的网站服务器
在上面提到了四个的作用域,作用域详细的说就是“信息共享的范围”,也就是一个信息能够在多大的范围内有效。

当用户通过浏览器客户端向网站服务器提出请求时,就是一个request过程,这个时候网站服务器收到客户端的request,网站服务器通过servlet或者JSP对用户发送的request进行出理,处理完后服务器通过response将处理完后的资源发送给客户端,客户端收到资源在浏览器显示出来。

request就是一个HTTP客户端请求,处理request可能需要多个Servlet合作,
几个Servlet之间可以通过某种方式传递信息,但这个信息在请求结束后就无效了

response就是一个HTTP服务器答复,将servlet处理结果答复给客户端

session与用户是一对一关系,一个web应用程序可以同时有多个用户在线,每个用户都有对应唯一的session,一个session就是一个用户从开始使用客户端到结束使用客户端的过程,这个过程可以有多个request和response

application与用户是一对多关系,类似于一个web应用程序对应于多个用户在线使用,每个web应用程序对应只有一个aaplication,在一起协同工作以完成某项任务的一组
ASP 文件称作应用程序(application)。
ASP 中的 Application 对象用于将这些文件捆绑在一起。application就是网站服务器从启动到停止的过程。

session作用域比较容易理解,同一浏览器访问多次,在这多次访问之间传递信息,就是session作用域。

session是通过HttpSession接口实现的。  

Object HttpSession.getAttribute(String name) 从session中获取信息  
void HttpSession.setAttribute(String name, Object value) 向session中保存信息  
而通过HttpServletRequest.getSession()方法可以获得HttpSession对象。  

HttpSession HttpServletRequest.getSessio()
获取当前请求所在的session的对象。  
session的开始容易判断(浏览器发出第一个HTTP请求即可认为会话开始), 而结束就不好判断了,因为客户端浏览器结束会话时并不会告知服务器,所以只能通过这种方法判断:如果一定的时间内客户端没有反应,则认为会话结束。 Tomcat的默认值为120分钟,但这个值也可以通过 HttpSession
setMaxInactiveInterval 方法来设置。  

void setMaxInactiveInterval(int interval) 设置绘画的超时值。  
如果想主动让会话结束,如用户单击“注销”的时候,可以使用 HttpSession 的 invalidate 方法:  

void invalidate() 强制结束当前session。  
application  
application作用域就是服务器启动到关闭的整段时间, 在这个作用域内设置的信息可以被所有应用程序使用。 

application作用域上的信息传递就是通过ServetContext实现的。  

Object getAttribute(String name) 从application中获取信息。  
void setAttribute(String name, Object value)
向application作用域中设置信息。  
总结  

可以看到,每个作用域除了实现接口不同、意义不同之外,它们的使用方法和作用都是相同的, 都是通过
getAttribute 和 setAttribute 方法进行信息传递。  

作用域 意义 实现接口  
request HTTP请求内 HttpServletRequest  
session HTTP会话内 HttpSession  
application 服务器生命周期内 ServletContext  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐