请求与相应模式的具体实现是内置对象来完成的。是由内置对象中的response和request来完成的。

内置对象又叫隐含对象,有9个内置对象,不需要预先声明就可以在脚本代码和表达式中随意使用。

使用容器获取太麻烦,内置对象能够提高开发效率。

作用域:pageContext,request,session,application

request

封装了由web浏览器或其他客户端生成HTTP请求的细节(参数、属性、头标和数据)

out

代表输出流的对象

response

封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。
response.getCharacterEncoding()获取字符集

request作用域

数据存储的范围

在相邻两个web资源之间共享同一个request对象。
request.getRequestDispatcher()包含两个方法,分别是请求转发和请求包含。
这个方法的的forword方法需要传入两个对象,目前学习看是转发request和response

请求转发: rd.forward( request , response );
请求包含: rd.include( request , response);

在获取请求的jsp文件:

  1. <%
  2. request.setAttribute("name", "Imooc");
  3. //下面做一个请求转发
  4. request.getRequestDispatcher("result.jsp").forward(request, response);
  5. %>

在获取请求转发的jsp文件:

  1. request作用域获取的数据:<%=request.getAttribute("name") %>

此时会直接跳转到result.jsp文件
image.png

pageContext对象

提供了转发请求到其他资源和包含其他资源的方法,提供获取其他内置对象的方法。
1、forward方法转发到指定页面a.jsp并且带相关参数:
pageContext.forward(“a.jsp?name=imooc”);

2、include方法把header.jsp文件引入,类似母版
pageContext.include(“header.jsp”);

3、getXX获取其他的内置对象【类似于request.getAttribute(“name”)】
pageContext.getRequest().getAttribute(“name”)

page对象

代表了正在运行的由JSP文件产生的类对象、
可以在jsp文件中,通过this.的方法获取page的相关信息

pageContext的作用域

数据共享只在当前执行页面有效
在同一个页面中设置:pageContext.setAttribute和pageContext.getAttribute

session对象

主要用于跟踪会话

session作用域

会话期间

设置绘画有效时间的方法:
session.setMaxInactiveInterval(int second);

config对象

获取配置信息

如果在web.xml配置文件中写入如下信息:

  1. <servlet>
  2. <servlet-name>logon</servlet-name>
  3. <jsp-file>/logon.jsp</jsp-file>
  4. <init-param>
  5. <param-name>age</param-name>
  6. <param-value>100</param-value>
  7. </init-param>
  8. </servlet>
  9. <servlet-mapping>
  10. <servlet-name>logon</servlet-name>
  11. <url-pattern>/denglu.do</url-pattern>
  12. </servlet-mapping>

可以通过127.0.0.1/imooc-jsp/denglu.do访问之前的logon.jsp,并且,如果在logon首部添加如下信息

  1. config对象:<%=config.getServletName() %>
  2. <br>
  3. config获取初始化参数:<%=config.getInitParameter("age") %>

访问时可以看到ServletName和相关初始化参数
image.png

exception对象

可以在有些地方抛出异常,并且如果发生异常就跳转到指定的页面,在jsp声明语句中添加errorPage=”error.jsp”,并且在error.jsp的声明语句中添加isErrorPage=”true”

exception对象只能在错误页面中使用,即声明文件中加入isErrorPage=”true”

application对象

代表了web应用的本身,提供了关于服务器版本,应用级初始化参数和应用内资源绝对路径方式;

application作用域

web容器的生命周期

获取当前系统的访问

  1. <%
  2. Object o = application.getAttribute("count") ;
  3. if(o ==null )
  4. {
  5. application.setAttribute("count", 1);
  6. }
  7. else{
  8. int count = Integer.parseInt(o.toString());
  9. application.setAttribute("count", count+1);
  10. }
  11. session.setAttribute("account", account);
  12. %>
  13. <h3 align="right">登录用户数:<%=application.getAttribute("count") %></h3>