四域九对象的相关知识

四大域

根据作用范围从小到大为:

  1. ​ page(jsp有效) ----> page域 ---->pageContext
  2. ​ request(一次请求) ---->ServletRequest域
  3. ​ session(一次会话) ---->HttpSession域
  4. ​ application(当前web应用) ---->ServletContext域

内置了map集合,均有setAttribute和getAttribute方法 ,因此被称为域对象

一、 PageContext域

1、 生命周期

​ 对JSP的请求时开始

​ 相应结束时销毁

jsp页面被执行,声明周期开始

jsp页面执行完毕,生命周期结束

2、 作用范围

​ 整个JSP页面,是四大作用域中最小的。

3、 作用

  1. 获取其他八大隐式对象,可以认为其是一个入口对象

  2. 获取其所有域中的数据
    (1)操作所有域中属性的方法

    public java.lang.Object getAttribute(java.lang.String name, int scope)

    public void setAttribute(java.lang.String name, java.lang.Object value, int scope)

    public void removeAttribute(java.lang.String name, int scope)

    (2)代表域的常量

    PageContext.APPLICATION_SCOPE

    PageContext.SESSION_SCOPE
    PageContext.REQUEST_SCOPE

    PageContext.PAGE_SCOPE

    findAttribute方法,在四大域中搜寻属性,顺序为page域、request域、session域、application域。

    若搜索到则直接获取该值,若找不到则返回NULL

    (3)跳转到其他资源 提供了forward和include方法,简化重定向和转发的操作

二、 ServletRequest域

1、生命周期

​ 在Service方法调用前由服务器创建,传入service方法。

​ 整个请求结束时,request生命结束

用户发送一个请求–开始

服务器返回响应–请求结束–生命周期结束

2、 作用范围

​ 整个请求链(请求转发也存在)

3、 作用

​ 在整个请求链中共享数据

​ eg:在servlet中处理好的数据交给JSP显示,此时参数就可以放到Request域中

三、 HttpSession域

1、 生命周期

​ 在第一次调用request.getSession()方法时,服务器会检查是否已经有对应的session,若没有则在内存中创建一个session并返回

(1)当一段时间内session没有被使用时(默认为30分钟),则服务器会销毁该session

(2)若服务器非正常关闭,未到期的session也会随之销毁

(3)若调用session提供的invalidate()方法,则可以立即销毁session

用户打开浏览器访问时,创建session–开始

session超时或被声明失效时,该对象生命周期结束

2、 作用范围

​ 一次会话

​ HTTPSession在服务器中,为浏览器创建独一无二的内存空间,在其中保存会话相关的信息。

Warning:

  • 服务器正常关闭再启动时,Session对象会进行钝化和活化的操作。
  • 同时若服务器钝化的时间在session默认销毁时间之内,则活化后的session还是存在的,否则Session不存在。
  • 若JavaBean数据在session钝化时,未实现Serializable,则当Session活化时数据会消失。

四、 ServletContext域

1、 生命周期

当Web应用被加载进容器时 --创建代表整个Web应用的ServletContext对象

当服务器关闭或Web应用被移除时–ServletContext对象跟着被销毁

2、 作用范围

​ 整个Web应用

3、 作用

(1)在不同的Servlet之间转发

​ this.getServletContext().getRequestDispatcher("…").forward(request,response);

​ 方法执行结束后,service则会返回到服务器,再有服务器去调用目标servlet,其中request会重新创建,并将之前的request数据拷贝进去。(2)读取资源文件

九大内置对象

JSP一共有九个内置对象: request、response、session、application、out、pagecontext、config、page、exception

1、 request对象

request对象是javax.servlet.http.HttpServletRequest类型的对象,代表客户端的请求信息。

主要用户获取客户端的参数和流

主要方法:

  1. String getMethod() //获得提交方式
  2. String getRequestURI() //获得请求的URL地址
  3. String getProtocol() // 得到协议名称
  4. String getServletPath() //获得客户端请求服务器文件的路径
  5. String getQueryString() //获得URL的查询部分,post方法获得不到信息
  6. String getServerName() //得到服务器的名称
  7. String getServerPort() //获得服务器口号
  8. String getRemoteAddr() //得到客户端的IP地址
  9. String fetParameter(String name) //获得客户端传给服务器的name参数的值

2、 response对象

response对象和request是一对相应的内置对象,代表对客户端的响应

主要方法:

  1. response.sendRedirect(目标页面路径); //重定向
  2. response.setHeader(String,String); //设置HTTP头

3、 session对象

session 对象是由服务器自动创建的与请求相关的对象,服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session内部使用Map来保存数据,即key-value对

主要方法:

  1. session.setAttribute(String,Object); //给Object命名String,加入session
  2. session.getAttribute(String); //取名为String的session的值
  3. session.removeAttribute(String); //将名为String的内容从session中移除

4、 application对象

application 对象是javax.servlet.ServletContext类型的对象,可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会整个应用中都有。

5、out对象

out 对象用于Web浏览器内输出信息,负责管理对客户端的输出。

管理应用服务器上的输出缓冲区。

在使用out对象输出数据时,可以对数据缓冲区进行操作,及时清理缓冲区中的残留数据。

6、pagecontext对象

pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。

pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

7、 config对象

config 对象是javax.servlet.ServletConfig类的实例对象。

主要作用是取得服务器的配置信息。

通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

8、 page对象

page 对象代表JSP本身,只有在JSP页面内才是合法的。

它是java.lang.Object类的实例化对象。

page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

9、 exception对象

exception 对象的作用是显示异常信息,只有在包含 isErrorPage=”true” 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。

excepation对象和Java的所有对象一样,都具有系统提供的继承结构。

对象的getAttribute作用范围(由小到大)
pageContext:作用整个页面,跳转后,则失效
request:作用当次请求,转发有效,重定向无效,刷新则无效
session:作用当次登录
application:作用整个页面

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值