在一个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 ) 返回指定路径的请求分发对象
作用域:
在一个服务器请求范围内有效。
热门文章
- HTML5 Canvas 水流样式 Loading 动画
- 领养宠物是啥意思啊(领养宠物须知)
- Eureka的配置项详解
- VPN安卓 | 4月24日18.1M/S|免费Shadowrocket/SSR/V2ray/Clash免费节点订阅分享
- 动物医院仪器设备(动物医院的仪器设备)
- VPN安卓 | 4月29日22.6M/S|免费SSR/V2ray/Clash/Shadowrocket免费节点订阅分享
- VPN安卓 | 4月4日21M/S|免费SSR/V2ray/Clash/Shadowrocket免费节点订阅分享
- 同安区宠物店有哪些厦门(厦门同安宠物医院)
- Azure Terraform(十一)Azure DevOps Pipeline 内的动态临时变量的使用
- 打完动物疫苗注意事项和禁忌症(动物打完疫苗可以洗澡吗)