servlet 中 servlet context 与 session 与 request 三个对象的常用方法和存放数据的作用域。

2022年7月25日11:17:32

  在一个web应用中,servlet主要通过servlet context、session、request这三个对象来传递信息,但三种容器的作用域不同,需根据需求来选择容器。

servlet context:servlet容器,用于实现Web应用中的资源共享

在一个项目中只会有一个servlet容器。

常用方法:

  • ServletContext  getServletContext( )   获取servle容器对象
  • void setAttribute (String name, Object object )  利用servlet容器保存数据
  • Object getAttribute (String name )  用servlet容器取出数据
  • String getRealPath (String path )  返回参数所代表目录的真实路径(项目路径)

作用域:

在一个项目中只会有一个servlet容器,不论在哪一个页面获取到的都是同一个容器,即servlet容器可作用于所有的项目页面,也就是说,servlet容器在整个个应用服务器范围内有效。

session:会话,用于记录会话状态的相关信息

浏览器可创建一个session,用于存放数据,一个浏览器只有一个session。

  常用方法:

  • HttpSession getSession( )  获取session对象
  • String getId()获取sessionid
  • void setMaxInactiveInterval(int interval)设定session的非活动时间
  • void invalidate()设置session对象失效
  • void setAttribute(String key, Object value)  利用session保存数据
  • Object getAttribute(String key)取出数据
  • void removeAttribute(String key)  删除数据

    生命周期

    • 不同的浏览器获取的sessio对象不同
    • 浏览器关闭后,获取不到之前的session
    • 服务器异常、关闭、重启,session对象会被销毁
    • 用户“安全退出”,session失效
    • session生命时间超时,session失效

    作用域:

    在session生命周期内,session对象在一次会话范围内容有效。

    request :主要用于处理客户端请求的数据信息

    利用request来传递信息时,需要和转发配合使用,可保证是同一个请求。

    常用方法:

    • Object getAttribute ( String name )  获取名称为name的属性值
    • void setAttribute (String name, Object object )  在请求中保存名称为name的属性
    • void removeAttribute (String name)  清除请求中名字为name的属性
    • String getCharacterEncoding ( )  返回请求体所使用的字符编码
    • void setCharacterEncoding (String charset )  设置请求体的字符编码
    • String getParameter ( String name )  获取参数
    • String[ ] getParameterValues (String name )  返回指定请求参数的全部值
    • RequestDispatcher getRequestDispatcher( String path )  返回指定路径的请求分发对象

    作用域:

    在一个服务器请求范围内有效。
  • 作者:古月~
  • 原文链接:https://blog.csdn.net/qq_50915088/article/details/125590563
    更新时间:2022年7月25日11:17:32 ,共 1415 字。