Servlet作用域

        Servlet支持存储数据的三个对象,HttpServletRequest请求作用域,HttpSession会话作用域,HttpContext应用作用域。

1、请求作用域

        生命周期:非常短仅限本次请求,适合存放量大频率高的数据。不可共享

                创建:客户端请求到达服务器后创建的存储区域(内存空间)

                销毁:服务器返回响应到客户端后立即销毁该区域

//获取请求作用域
Object username1 = request.getAttribute("username");
System.out.println("username:"+username1);//null
//为作用域赋值
request.setAttribute("username","admin");

Object username2 = request.getAttribute("username");
System.out.println("username:"+username2);//username:admin

//删除作用域
request.removeAttribute("username");

2、应用作用域

        一个application应用对应一个application作用域,在servlet中数据共享。

        生命周期:非常长,适合存放共享数据。

                创建:服务器启动阶段时创建应用作用域

                销毁:服务器关闭阶段时销毁应用作用域

//获取应用作用域
ServletContext context = request.getServletContext();
//获取数据
System.out.println("1:"+context.getAttribute("username"));//null
//为应用作用域赋值
context.setAttribute("username","application scope");
System.out.println("2:"+context.getAttribute("username"));//application scope
//删除数据
context.removeAttribut("username");

3、会话作用域

        生命周期:

        创建:通过调用创建方法在服务器端创建全新的会话对象

//request:header:cookie:JSESSIONID:session id
HttpSession session = request.getSession();

//无会话则创建,有会话则返回,带不带true一致
request.getSession();
request.getSession(true);
//无会话返回null,有会话返回,不创建
request.getSession(false);

        销毁:

                1、全局定时销毁,服务端会话池,每次都带expire(过期时间),每次请求会复位。

<!--会话配置-->
<session-config>
    <!--单位:分钟,默认不写是30-->
    <session-timeout>45</session-timeout>
</session-config>

                2、单个会话立即销毁

HttpSession session = request.getSession();
session.invalidate();

                3、单个会话计时销毁(不常用)

HttpSession session = request.getSession();
//计时销毁单个会话,单位秒
session.setMaxInactiveInterval(60);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值