一、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中隐式对象的名称   范围名称       具体的类型

pageContext      page       javax.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:参数值

Jsp内置对象及EL表达式的使用的更多相关文章

  1. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

  2. jsp内置对象和el表达式

    九个内置对象 *out jsp的输出流,用来向客户端响应 *page 当前jsp页面, 它的引用数据类型是Object,即真身中有如下代码 Object page=this; *config 它对应真 ...

  3. jsp内置对象和el表达式内置对象误区

    未经允许禁止转载... jsp九大内置对象 EL表达式隐含的11个对象 隐含对象名称 描       述 pageContext 对应于JSP页面中的pageContext对象(注意:取的是pageC ...

  4. JSP内置对象和EL内置对象

    JSP共有九大内置对象: (1) HttpSession类的session对象作用:主要用于来分别保存每个用户信息,与请求关联的会话:         会话状态维持是Web应用开发者必须面对的问题. ...

  5. Jsp内置对象和EL隐藏(内置)对象

      JSP中的内置对象一共有九个, 由于有的不太常用, 所以总是记不住, 从Sun公司的网站上找到的PDF文档, 把这一部分放在这里, 以备随时查用:     JSP九个内置对象: Implicit ...

  6. JSP运行过程 JSP脚本 静态动态包含 jsp指令 jsp内置对象jsp四大作用域 jsp动作元素 EL表达式 JSTL 设计模式 JSP开发模式 EL内置对象

    Day38 JSP JSP的运行过程具体如下: (1)客户端发出请求,请求访问JSP文件. (2)JSP容器先将JSP文件转换成一个Java源文件(Java Servlet源程序),在转换过程中,如果 ...

  7. EL表达式,JSP内置对象

    基本语法格式 EL都是以 ${ 为起始.以} 为结尾的 ${ EL Expression} 示例: ${ “Helloworld” }  //输出字符串常量 ${ str }  //输出字符串变量st ...

  8. 转:jsp内置对象中page与pageContext与el内置对象pageScope与pageContext区别

    原文地址:jsp内置对象中page与pageContext与el内置对象pageScope与pageContext区别 首先说明一下jsp9大内置对象 (1)HttpSession类的session对 ...

  9. Java EE JSP内置对象及表达式语言

    一.JSP内置对象 JSP根据Servlet API规范提供了一些内置对象,开发者不用事先声明就可使用标准变量来访问这些对象. JSP提供了9种内置对象: (一).request 简述: JSP编程中 ...

随机推荐

  1. JDK自带工具一览表。妈妈再也不用担心你到处去下载小软件了~~

    原来JDK早早就给我准备好了要用到的工具..反编译,JVM性能监视.诊断. JDK(Java Development Kit)是Java程序员最核心的开发工具,没有之一. JDK是一个功能强大的Jav ...

  2. Windows Server 2008 R2安装WAMPSERVER无法启动的解决方法

    其实根本不算什么解决方法,会者不难的事.Windows Server 2008 R2(也包括其他版本的Windows)默认状态下安装WAMPSERVER经常是无法顺利启动WAMPSERVER的,尤其是 ...

  3. rpm安装rpm-package报错:Header signature NOKEY 和 error: Failed dependencies:

    以前经常遇到这个问题,一直未有记录,今天记录下来: 在安装rpm包的时候报错误如下: Question 1: warning: *.rpm: Header V3 DSA signature: NOKE ...

  4. linux: 获取监听指定端口的进程PID

    在 linux 下经常需要杀死(重启)监听某端口的进程, 因此就写了一个小脚本, 通过 ss 命令获取监听制定端口的进程 PID, 然后通过 kill 命令结束掉进程: #!/bin/sh # set ...

  5. Docker 基础命令 简要入门

    本文出自:http://www.cnblogs.com/scoter2008,本文将持续更新所有docker都可以通过man查看帮助:man docker [ps|top|run|...]1.列出正在 ...

  6. jsp 单机和双击事件

    公司要求给一个按钮加一个双击和单机事件  整理了一下   做个笔记 HTML  单机和双击事件 <a href="javascript:void(0)" ondblclick ...

  7. [转]用NPOI操作EXCEL--数据有效性

    本文转自:http://www.cnblogs.com/atao/archive/2009/09/22/1572170.html 在有些情况下(比如Excel引入),我们可能不允许用户在Excel随意 ...

  8. 边工作边刷题:70天一遍leetcode: day 86

    Word Pattern II 要点: 注意与I的差异,其实题不难,看到这种迷乱的,首先要想到backtrack 1:1 mapping两个条件:p in and str in, or p not i ...

  9. 从Maya中导入LightMap到unity中

    导入步骤 1.在Maya中为每一个模型烘焙好帖图(tif格式),会发现烘焙好的图和UV是一一对应的 2.把模型和烘焙帖图导入到Unity中 3.选中材质,修改Shader为 Legacy Shader ...

  10. Lua windows环境搭建

    Lua语言的小巧和功能强大在朋友做的一个项目中得以验证,自己也尝试着了解一下,首先在window系统上搭建一个学习环境. 官网:https://www.lua.org/ 搭建运行环境提供2种方式,源码 ...