(灰常重要)jsp九大内置对象整理总结和EL表达式内置对象

本文介绍了JSP内置对象及其用途,并详细解释了EL表达式的概念与使用方法。同时,文章还列举了EL表达式的内置对象及其分类。

转自:

https://blog.youkuaiyun.com/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中设置。
JSP 九大内置对象、四大作用域对象与 EL 表达式的 11 个隐式对象之间存在着紧密的联系。 ### JSP 九大内置对象与四大作用域对象 JSP 九大内置对象分别是 `request`、`response`、`out`、`session`、`application`、`config`、`pageContext`、`page` `exception` [^2]。四大作用域对象分别是 `page`、`request`、`session`、`application`,它们用于存储数据并规定数据的有效范围。 - `request` 内置对象对应 `request` 作用域,用于在一次请求中传递数据。当客户端向服务器发送请求时,`request` 对象可以存储该请求期间的相关数据,在请求处理过程中共享这些数据。 ```jsp <% request.setAttribute("message", "This is a request-scoped message"); %> ``` - `session` 内置对象对应 `session` 作用域,用于在用户会话期间存储数据。每个用户在访问网站时会有一个独立的会话,`session` 对象可以在该会话期间保存用户的相关信息。 ```jsp <% session.setAttribute("username", "John"); %> ``` - `application` 内置对象对应 `application` 作用域,在整个应用程序的生命周期内有效。当服务器启动到服务器关闭这段时间,`application` 作用域中存储的数据都可以被访问。 ```jsp <% application.setAttribute("appInfo", "This is an application-wide information"); %> ``` - `pageContext` 内置对象可以操作其他三个作用域,它可以获取设置不同作用域中的属性。 ### JSP 九大内置对象EL 表达式的 11 个隐式对象 EL 表达式的 11 个隐式对象是为了方便在 EL 表达式中访问各种数据而设计的。其中部分对象与 JSP 九大内置对象相关。 - `pageContext`:在 JSP 九大内置对象 EL 表达式的 11 个隐式对象中都存在,它是一个核心对象,可以用来获取其他作用域对象。 - `request`、`session`、`application`:这些在 JSP 内置对象中存在的对象,在 EL 表达式中也有对应的隐式对象,方便在 EL 表达式中直接访问这些对象的属性数据。例如,在 EL 表达式中可以使用 `${requestScope.message}` 来获取 `request` 作用域中的数据。 ### 四大作用域对象与 EL 表达式的 11 个隐式对象 EL 表达式的 11 个隐式对象中有专门用于访问四大作用域数据的对象。 - `pageScope`、`requestScope`、`sessionScope`、`applicationScope`:分别对应四大作用域,通过这些隐式对象可以方便地在 EL 表达式中获取不同作用域中的属性值。例如 `${sessionScope.username}` 可以获取 `session` 作用域中的 `username` 属性值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值