您当前的位置: 首页 >  servlet

梁云亮

暂无认证

  • 1浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Servlet作用域对象

梁云亮 发布时间:2022-04-09 11:40:07 ,浏览量:1

简介

servlet有三大作用域对象:request、session、application

类型对象HttpServletRequestrequestHttpSessionsessionServletContextapplication

作用域对象共享数据相关的方法:

  • 设置作用域中的共享数据:作用域对象.setAttribute(String name,Object value);
  • 获取作用域中的共享数据:Object value = 作用域对象.getAttribute(String name);
  • 删除作用域中指定的共享数据:作用域对象.removeAttribute(String name);

注意:在哪个作用域中设置共享数据,就只能从该作用域中取出数据。

request

request表示一个请求,只要发出一个请求就会创建一个request,它的作用域仅在当前请求中有效,如果Web组件之间需要共享同一个请求中的数据,只能使用请求转发。 每一次请求都是一个新的request对象,如果在web组件之间需要共享同一个请求中的数据,只能使用请求转发。

应用场景:

  • 用于服务器间同一请求不同页面之间的参数传递
  • 用于表单的控件值传递
session

服务器为每个会话创建一个session对象,所以session中的数据可供当前会话中的所有servlet共享。 每一次会话都是一个新的session对象,如果需要在一次会话中多个请求之间需要共享数据,只能使用session。 会话从用户打开浏览器开始,直到关闭浏览器才结束,一次会话期间只会创建一个session对象。

session是服务器端对象,保存在服务器端,并且服务器可以将创建session后产生的 sessionid 通过一个 cookie 返回给客户端,以便下次验证。(session底层依赖于cookie)。

应用场景:

  • 用于web开发中的登陆验证
  • 用于电商网站购物车功能

session销毁的场景:

  • session超时;
  • 浏览器关闭后,session会在超时之后被销毁;
  • 调用 session.invalidate()方法;
application

application在服务器启动时创建,服务器关闭时销毁。 application表示一个应用,在一个应用中有且只有一个application对象,作用于整个web应用,可以实现多次会话之间的数据共享。

获取ServletContext对象的方式:

  • 在servlet类中:super.getServletContext();
  • 通过请求对象来获取:request.getServletContext();
  • 通过session对象来获取:request.getSession().getServletContext(); 注意点:无论是哪一种方式,获取的都是同一个ServletContext对象
关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0391s