1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Jsp内置对象及EL表达式的使用

Jsp内置对象及EL表达式的使用

时间:2021-08-04 06:26:44

相关推荐

Jsp内置对象及EL表达式的使用

一、JSP的内置对象(9个JSP内置对象)

JSP的内置对象引用名称 对应的类型

request HttpServletRequest

response HttpServletResponse

session HttpSession(有开关的:page指令的session属性的取值)

application ServletContext

config ServletConfig

page this(当前Servlet对象)

exception java.lang.Throwable(有开关:page指令的isErrorPage属性改为true)

out JspWriter

pageContext javax.servlet.jsp.PageContext非常重要

pageContext对象有三大作用:

1、本身是一个域对象,表示的域范围是本页面。

同时还能操作其他三个域对象(PageContext ,ServletRequest, HttpSession,ServletContext)

设置属性:

void setAttribute(String name,Object value)

void removeAttribute(String name)

Object getAttribute(String name)

操作其他的三个域对象,设置属性:

void setAttribute(String name,Object value,int scope)

void removeAttribute(String name,int scope)

Object getAttribute(String name,int scope)

参数int scope是由PageContext类提供的静态变量规定的。

PageContext.PAGE_SCOPE:页面范围(是PageContext本身中的那个Map,代号page)

PageContext.REQUEST_SCOPE:请求范围(是ServletRequest中的那个Map,代号request)

PageContext.SESSION_SCOPE:请求范围(是HttpSession中的那个Map,代号session)

PageContext.APPLICATION_SCOPE:请求范围(是ServletContext中的那个Map,代号application)

Object findAttribute(String name):依次按照page,request, session ,application范围搜索指定名称的对象,找到为止。

EL表达式便是调用了此方法(非常有用)

2、获取其他8个隐式对象

3、提供了转发和包含的方便方法

若不用pageContext对象:

RequestDispatcher rd = request.getRequestDispatcher("/url");

rd.forward(request,response);

用pageContext对象:

pageContext.forward("url");

pageContext.include("url");

四大域对象(两个资源之间互传数据)

JSP中隐式对象的名称 范围名称 具体的类型

pageContextpagejavax.servlet.jsp.PageContext

request request javax.servlet.ServletRequest

session session javax.servlet.http.HttpSession

application application javax.servlet.ServletContext (如果使用,必须同步处理)

二、EL表达式

它只是JSP中的表达式,不是一种开发语言。

基本语法:${EL表达式}

1.获取数据

EL表达式只能获取四大域中的数据。

EL表达式获取的对象如果是null,页面不会显示数据。因此,EL表达式中永远不会出现空指针异常

"."运算符:

${p.name}:调用域中名称为p对象的getName方法,点运算符是用于获取属性的取值的。

[]运算符:

(.运算符能做的,[]也能做。[]能做的,.不一定能做)

比如${p.name}===${p['name']}==${p["name"]}

优秀在可以取不符合Java命名规范的东东。

2.数学逻辑运算:

empty运算符:如果判断的对象是null或者空字符串,都返回true。

对于集合,即使集合对象本身不是null,没有任何元素,也返回true。

EL表达式不支持字符串连接操作。

三、EL内置对象(11大EL内置对象)

获取JSP的内置对象(11大EL内置对象):难点,不要与JSP的内置对象和范围名称搞混

11大EL隐式对象中,其中一个是表示自身对象外,其余都是表示的Map结构

EL隐式对象名称 Java类型 备注

pageContext javax.servlet.jsp.PageContext 与JSP中的内置对象完全相同

剩余的都是代表的Map集合

pageScope java.util.Map 代表着PageContext页面范围域那个Map

requestScope java.util.Map 代表着ServletRequest请求范围域那个Map

sessionScope java.util.Map 代表着HttpSession会话范围域那个Map

applicationScope java.util.Map 代表着ServletContext应用范围域那个Map

param java.util.Map 代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串。

paramValues java.util.Map 代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串数组。

header java.util.Map代表着请求消息头。key:头名称。value:头值,它是一个字符串。

headerValues java.util.Map 代表着请求消息头。key:头名称。value:头值,它是一个字符串数组。

cookie java.util.Map代表客户端提交的Cookie的Map。key:cookie的name。value:cookie对象本身

initParam java.util.Map 代表着全局初始化参数(web.xml中context-param).key:参数名称。value:参数值

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。