request,session,application的区别和联系

request,session,application,三者比较


作用域:

request < session < application


各自对应的接口

request对象 对应的接口 :

javax.servlet.ServletRequest 其子接口:javax.servlet.http.HttpServletRequest


session对象 对应的接口 :javax.servlet.http.HttpSession


application对象 对应的接口 :javax.servlet.ServletContext


三者共有的方法

setAttribute(String name , Object o ) ,getAttribute(String name) ;


简单分析三者

1.request

调用上面两个方法,只在一次请求上(转发不算请求,因为转发是服务器端的行为)生效,当把信息返回给客户端,该对象就被摧毁


2.session

概念

是服务器端的行为

用于跟踪客户的状态,当用户去访问某个站点时,服务器端就会为客户产生一个sessionID,以cookie的方式返回给客户端,当客户的去访问该站点的其他服务时,就会带者当前sessionID一起发出请求,已识别是哪个用户,一个用户就好比一个session对象,互不干扰。


运行机制

 

 

Session失效原因

1) Session 过期

2) 服务器端调用了invalidate(),让其失效

3) 现在的网页大部分是支持session的,要让该页面失去session功效,

    则在页面加上 <%@ page session="false" %> 即可,但一般不会这样做


Session重要方法

1) getId() --- 获取session的id号,每个id号都是不同的

2) isNew() --- 判断该session是不是新的

3) invalidate() --- 让当前session失效,释放资源

4) setMaxInactiveInterval(int interval) --- 设置session处于不活动的时间间隔(以秒为单位),

    超过该时间,session失效,

    如果设置的是负数,或0,则不限制session不活动的时间间隔,默认一般是30分钟

5) setAttribute(String name , Object o ) ,getAttribute(String name)


运用场景

1) 登录

2) 购物车



3.application

调用上面两个方法,一个服务器就一个application对象,用户共享一个application,当服务器停止的时候application 被摧毁,(用于网站访问次数

你可能感兴趣的:(request,session,application的区别和联系)