转自:
https://blog.csdn.net/haha_sir/article/details/80350374
https://www.cnblogs.com/sharpel/p/5870114.html
一、什么是内置对象
1、我的理解是: jsp内置对象,不需要new来创建的对象。 无论你使不使用,它都存在于jsp页面,不离不弃。 男生们都希望有这样的对象,一下子还有九个---- 咳咳,继续搬砖!
二、jsp内置对象整理
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、||、!、not
|
关系型
|
==、eq、;!=、 ne、;>、gt、;<=、le、;>=、ge、;<、lt;
|
关系型
|
a==b?c:d;
|
空
|
empty
|
3、EL内置对象 (11个)
序号
|
类别
|
标识符
|
描述
|
1
|
JSP
|
pageContext
|
PageContext 实例对应于当前页面的处理
|
2
|
作用域
|
pageScope
|
与页面作用域属性的名称和值相关联的 Map 类
|
3
|
requestScope
|
与请求作用域属性的名称和值相关联的 Map 类
| |
4
|
sessionScope
|
与会话作用域属性的名称和值相关联的 Map 类
| |
5
|
applicationScope
|
与应用程序作用域属性的名称和值相关联的 Map 类
| |
6
|
请求参数
|
param
|
按名称存储请求参数的主要值的 Map 类
|
7
|
paramValues
|
将请求参数的所有值作为 String 数组存储的 Map 类
| |
8
|
请求头
|
header
|
按名称存储请求头主要值的 Map 类
|
9
|
headerValues
|
将请求头的所有值作为 String 数组存储的 Map 类
| |
10
|
Cookie
|
cookie
|
按名称存储请求附带的 cookie 的 Map 类
|
11
|
初始化参数
|
initParam
|
按名称存储 Web 应用程序上下文初始化参数的 Map 类
|
4、补充: JSP内置对象是EL内置对象,二者不互通!!!
5、 jsp页面java脚本:
<%=request.getAttribute("name") %>
等价于 EL表达式:
${requestScope.name }
JSP开发人员可以在EL表达式中使用EL隐式对象,而无须任何显式的编码活声明。隐式对象就是设计用来为 JSP 编程提供方便的,通过隐式对象,用EL编写的代码就可以直接使用JSP页面的一些最常用的地方。总共有11个隐式对象,这11个隐式对象可以分为5大类:
*JSP隐式对象。
*作用域访问隐式对象。
*参数访问隐式对象。
*首部访问隐式对象。
*初始化参数访问隐式对象。
JSP隐式对象类中只有一个EL隐式对象,这就是pageContext隐式对象。这与同名的 JSP隐式对象实际上就是同一个对象。余下的EL隐式对象都是Java映射(map),他们只是提供了更容易的途径来访问pageContext隐式对象的某些性质。
共有4个作用域隐式对象,分别为pageScope, requestScope, sessionScope和applicationScope. 这些隐式对象都是映射,利用他们可以很容易的访问作用域属性。例如:附加到request作用域的username属性可以通过EL表达式${ requestScope.username}来直接访问。
有两个参数访问隐式对象,可以用来访问HTTP请求参数(表单提交参数),即param和paramValues. param 是一个用于访问单值参数的映射, paramValues则可用于访问可能包含多个值的参数。接下来的实验会展示这将如何处理。
有3个首部访问隐式对象,可以用于访问HTTP首部,分别是header, headerValues和cookie。如果想以原始的方式访问HTTP首部或cookie, 这些映射就很有用。
另外还有一个初始化参数访问隐式对象:initParm。这个映射可以用于访问初始化参数的值,初始化参数的值一般都在web.xml中设置。