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 实例对应于当前页面的处理 ServletContext类 <mark>获取JSP其他八个内置对象(隐式对象)</mark> |
2 | 作用域 | pageScope | 与页面作用域属性的<mark>名称</mark>和<mark>值</mark>相关联的 Map类 |
3 | 作用域 | requestScope | 与请求作用域属性的名称和值相关联的 Map类 |
4 | 作用域 | sessionScope | 与会话作用域属性的名称和值相关联的 Map类 |
5 | 作用域 | applicationScope | 与应用程序作用域属性的名称和值相关联的 Map类 |
6 | 请求参数 | param | 按名称存储请求参数的主要值的 Map类 如: ${param.name } 获取路径参数的name值 |
7 | 请求参数 | paramValues | 将请求参数的所有值作为 String 数组存储的 Map类 |
8 | 请求头 | header | 按名称存储请求头主要值的 Map类 |
9 | 请求头 | headerValues | 将请求头的所有值作为 String 数组存储的 Map类 |
10 | Cookie | cookie | <mark>按名称存储请求附带的 cookie 的</mark> Map类 |
11 | 初始化参数 | initParam | 按名称存储 Web 应用程序上下文初始化参数的 Map类 |
4、补充: JSP内置对象是EL内置对象,二者不互通!!!
5、 jsp页面java脚本: <%=request.getAttribute("name") %>
等价于 EL表达式:${requestScope.name }
∗∗注意∗∗
标识符可直接作用在 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>