jsp九大内置对象整理总结和EL表达式内置对象整理

一、什么是内置对象

1、我的理解是: jsp内置对象,不需要new来创建的对象。 无论你使不使用,它都存在于jsp页面,不离不弃。 男生们都希望有这样的对象,一下子还有九个---- 咳咳,继续搬砖!

二、jsp内置对象整理

<mark>在jsp页面中不需要创建,直接使用的对象</mark>

1、如下表格

序号 对象名称 对象类型 作用简述
1 request javax.servlet.ServletRequest 接收客户端请求
2 response javax.servlet.ServletResponse 服务端响应客户端
3 session javax.servlet.http.HttpSession 保存会话信息
4 application javax.servlet.ServletContext web应用程序全局对象
5 out javax.servlet.jsp.JspWriter 向客户端输出数据
6 config javax.servlet.ServletConfig 获取Servlet配置信息
7 page java.lang.Object 处理当前jsp页面
8 pageContext java.servlet.jsp.PageContext 处理jsp页面属性
9 exception java.lang.Throwable jsp页面出现异常时执行

2、注意 application 对象类型是: ServletContext ,没有带application的。

3、关于config对象补充,config.getInitParameter(“xx”),获取的当前jsp页面的配置参数,无法获取其他 Servlet中的参数。

详细说明参见:JSP内置对象之config对象

三、EL表达式内置对象

1、什么是EL表达式:EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。

2、EL 运算符

类型 符号
算术型 +、-、*、/、div、%、mod
逻辑型 and、&&、or、
关系型 ==、eq、;!=、 ne、;>、gt、;<=、le、;>=、ge、;<、lt;
关系型 a==b?c:d;
empty

3、EL内置对象 (11个)
以下表格引用自: JSP内置对象和EL内置对象

序号 类别 标识符 描述
1 JSP pageContext PageContext 实例对应于当前页面的处理
<mstyle mathcolor="&#35;f01"> S e r v l e t C o n t e x t </mstyle> \color{#f01}{ServletContext类} ServletContext
<mark>获取JSP其他八个内置对象(隐式对象)</mark>
2 作用域 pageScope 与页面作用域属性的<mark>名称</mark>和<mark>值</mark>相关联的 <mstyle mathcolor="&#35;f91"> M a p </mstyle> \color{#f91}{ Map 类} Map
3 作用域 requestScope 与请求作用域属性的名称和值相关联的 <mstyle mathcolor="&#35;f91"> M a p </mstyle> \color{#f91}{ Map 类} Map
4 作用域 sessionScope 与会话作用域属性的名称和值相关联的 <mstyle mathcolor="&#35;f91"> M a p </mstyle> \color{#f91}{ Map 类} Map
5 作用域 applicationScope 与应用程序作用域属性的名称和值相关联的 <mstyle mathcolor="&#35;f91"> M a p </mstyle> \color{#f91}{ Map 类} Map
6 请求参数 param 按名称存储请求参数的主要值的 <mstyle mathcolor="&#35;f91"> M a p </mstyle> \color{#f91}{ Map 类} Map
如:${param.name }获取路径参数的name值
7 请求参数 paramValues 将请求参数的所有值作为 String 数组存储的 <mstyle mathcolor="&#35;f91"> M a p </mstyle> \color{#f91}{ Map 类} Map
8 请求头 header 按名称存储请求头主要值的 <mstyle mathcolor="&#35;f91"> M a p </mstyle> \color{#f91}{ Map 类} Map
9 请求头 headerValues 将请求头的所有值作为 String 数组存储的 <mstyle mathcolor="&#35;f91"> M a p </mstyle> \color{#f91}{ Map 类} Map
10 Cookie cookie <mark>按名称存储请求附带的 cookie 的</mark> <mstyle mathcolor="&#35;f91"> M a p </mstyle> \color{#f91}{ Map 类} Map
11 初始化参数 initParam 按名称存储 Web 应用程序上下文初始化参数的 <mstyle mathcolor="&#35;f91"> M a p </mstyle> \color{#f91}{ Map 类} Map

4、补充: JSP内置对象是EL内置对象,二者不互通!!!

5、 jsp页面java脚本: <%=request.getAttribute("name") %>
等价于 EL表达式:${requestScope.name }

<mstyle mathcolor="&#35;f01"> </mstyle> \color{#f01}{**注意**}

标识符可直接作用在 EL 表达式中

如:

pageContext.request.session/pageContext.request.cookies

这两个东西虽然都是 session 和 cookies ,但是和

标识符:sessionScope,cookie 差远了,后者是map集合,遍历调用起来方便

cookie => 按名称存储请求附带的 cookie 的 Map 类

10 | Cookie | cookie | <mark>按名称存储请求附带的 cookie 的 Map 类</mark>

取值时需要。。。

	<c:forEach items="${cookie }" var="c">
		${c.key } : ${c.value.name }:  ${c.value.value} }<br>
	</c:forEach>