1 域对象 的定义
一个对象具有可以被访问的范围,该对象上具有一个Map(集合),可以利用这个map在整个范围内实现资源共享。
2 域对象 有四个
作用范围(从小到大)
Pagecontext(一个JSP页面)>>>>Request (一次请求)>>> Session (一次会话) >>>ServletContext(整个web应用)
pagecontext:作用范围 >>>>>整个JSP页面(作用范围最小的一个 ,一般没有)
request: 作用范围 >>>>>整个请求链(即一次请求)
Session: 作用范围 >>>>>整个会话(有这多次请求和响应) >>> 服务端 技术
ServletContext: 作用范围 >>>>>整个web应用(作用范围最大)
生命周期
PageContext:生命周期 >> (开访访问JSP是创建pageContext对象,访问JSP结束时销毁pageContext对象)
Request: 生命周期 >>(创建request对象(一次请求的开始),销毁request对象(一次请求结束))
Session: 生命周期 >>(第一次调用request.getSession方法时,Session的消亡)
ServletContext: 生命周期 >> (当前web应用创建,当前web应用关闭或移除)
3 各自特点
PageContext
PageContext 表示当前的JSP运行的环境变量(域对象)
1 作为入口对象, 获取其他的八大隐式对象
扩展 九大隐式对象
比如 getPage() --- 获取page的隐式对象
2 作为域对象使用
Request
Request 表示Http请求对象 携带所有的请求信息 常用的请求有GET请求 和 POST请求(表单)
1 获取客户机的基本信息、获取请求头信息
2 获取请求参数 注意中文乱码问题 一般要设置浏览器 和 服务器
3 实现请求转发 Request.getRequestDispatcher("跳转的资源路径从web应用的后面开始写").forword(request,response)
4 作为域对象使用
5 实现请求包含 Request.getRequestDispatcher("/合并的servlet资源路径").include(request,response)
Session
会话的数据>>>>>域对象
创建 request.getSession();
在区分Session时 用到 Sessionid 来判断 将JSESSSIONID以cookie的形式发送给浏览器 ,这样服务器就可以识别。
ServletContext
整个web应用>>>>>域对象
获取该对象 ServletContext context = this.getServletContext();