一,JSP隐式对象

  

隐式对象是可以直接使用的,无需声明。因为在JSP转译为servlet文件后,会自动声明其对象。

隐式对象①

说明

out

对应JspWriter对象,其内部关联一个PrintWriter对象②

Request

对应HttpServletRequest对象

Response

对应HttpServletResponse对象

Config

对应ServletConfig对象

Application

对应ServletContext对象

Session

对应HttpSession对象

pageContext

对应PageContext对象,它提供了jsp页面资源的封装,并可设置页面范围属性

Exception

对应Throwable对象,代表由其他JSP页面抛出的异常对象,只会出现于JSP错误页面

page

对应this

注意①:隐式对象只能在<% %>之间,或<%= %>之间只用,因为正如先前所提,隐式对象在转译为 servlet后,是_jspService()中的局部变量,无法再<%! %>之间使用隐式对象。

注意②:out对应的是JspWriter对象,而非PrintWriter。不同在于JspWriter直接继承于 java.io.writer,虽然内部也是调用printwriter,但具有缓冲区功能。如果jsp页面没有缓 冲,直接来输出响应,但jsp页面有缓冲时,只有在清除(flush)缓冲区时才会进行输出。 在编写JSP页面时,可以通过page指示元素的buffer属性来设置缓冲区的大小,默认值 是8kb。默认缓冲区满后自动输出。

注意③:pageContext隐式对象转译后,对应javax.servlet.jsp.PageContext类。这个对象将所有jsp 页面的信息封装,要取得对应jsp页面的servletContext、servletConfig、httpSession与 jspWriter对象时,可以通过以下代码取得:

Aplication = pageContext.getServletContext();

Config = pageContext.getServletConfig();

Session = pageContext.getSession();

Out = pageContext.getOut();

除了封装所有的jsp页面信息之外,还可以使用pageContext来设置范围属性,同样使用 setAttribute()、getAttribute()与 removeAttribut()来进行设置:

getAttribute(String name,int scope)

setAttribut(String name , Object value, int scope)

removeAttribute(String name , int scope)

其中的scope可以使用以下的常数来制定范围:

pageContext.PAGE_SCOPE、 (当前页面)

pageContext.REQUEST_SCOPE、 (请求)

pageContext.SESSION_SCOPE、 (会话)

PageContext.APPLICATION_SCOPE。 (应用程序)

当不知道属性范围时,可以不设定scope,会自动依序从页面、请求、会话、应用程序(基 本是从小到大)来寻找对应的属性,当然这样做很不好。也可以使用findAttribut()来查找 范围。

二,EL隐式对象

类别

隐式对象

说明描述

JSP

pageContext

pageContext对象的实际引用 ①

作用域

pageScope

存放页面作用域中属性键值对的Map

requestScope

存放请求作用域中属性键值对的Map

sessionScope

存放会话作用域中属性键值对的Map

applicationScope

存放应用作用域中属性键值对的Map

请求参数

param

存放请求参数中属性键值对的Map

paramValues ②

将请求参数以String为值类型的键值对的Map

请求头

header

存放请求头中属性键值对的Map

headerValues

将参数以String为值类型的键值对的Map

Cookie

cookie

存放cookie中属性键值对的Map

初始化参数

initParam

存放应用程序初始化属性键值对的Map

注释①:JSP隐式对象pageContext 与EL隐式对象pageContext其实是同一对象。与其 他隐式对象不同,pageContext是对象的实际引用,而其他隐式对象,而都是映射(Map ,  键值对的集合)。

注释②:如果请求中有多个参数的key同名,param.name只能取得一个参数的值。但 使用paramValues.name[x]可以取得key为name的第(x-1)个参数的值。headerValues同 样如此。

JSP与EL隐式对象的更多相关文章

  1. JSP九大隐式对象

    JSP九大隐式对象 request HttpServletRequest response HttpServletResponse session HttpSession application Se ...

  2. JSP九大隐式对象和四大域对象-----面试

    因为jsp实质是一个Servlet对象:jsp在第一次访问时会被Web容器翻译成Servlet,在执行过程:第一次访问---->inex.jsp---->index_jsp.java--- ...

  3. JSP 4个域对象-9个内置对象-11个EL隐式对象

    一. 四大域对象 1. PageContext :页面范围的数据 2. ServletRequest:请求范围的数据 3. HttpSession:会话范围的数据 4. ServletContext: ...

  4. JSP页面以及JSP九大隐式对象

    €JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. €JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比 ...

  5. JSP 九大隐式对象

    final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null; fina ...

  6. JSP 9大隐式对象和四个作用域的范围

    Java中 九大隐式对象说明 输入/输出对象:  request   response   out 作用域通信对象: session  application  pageContext Servlet ...

  7. JavaWeb学习记录(十七)——JSP九大隐式对象

    public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOE ...

  8. JSP九个隐式对象及作用域

    out:JspWriter实例对象,作用域为page(页面执行期) 向客户端输出内容 request:HttpServletRequest实例对象,作用域为request(用户请求期) 请求信息 re ...

  9. JSP中的隐式对象(implicit object)

随机推荐

  1. python paramiko 进行文件上传处理

    #!/usr/bin/env python # -*- coding:utf-8 -*- import paramiko import uuid class Ha(object): def __ini ...

  2. ASCII 计算机码

      回车 代码:CR ASCII码:\ r ,十六进制,0x0d,回车的作用只是移动光标至该行的起始位置: 换行 代码:LF ASCII码:\ n ,十六进制,0x0a,换行至下一行行首起始位置:

  3. linux命令之tail

    tail用于输出文件末尾部分.一个比较有用的功能是tail + grep实现类似于安卓开发时调试使用的logcat,具体操作是: 一般我是用SecureCRT连接linux,然后使用SecureCRT ...

  4. css3 选择器(三)

    接css3选择器(一) 接css3 选择器(二) 这篇和前两篇内容相关性不大,主要是涉及到一些css3的状态选择器,所以标题从一开始. 一.[:enabled]选择器 一看这个属性就知道是专为表单元素 ...

  5. java进程占用CPU资源过高分析脚本

    #!/bin/bash #输入占用CPU较高的进程号 pid=$ if [ -z $pid ] then echo "PID is NULL" exit fi #找到该进程中占用较 ...

  6. struts2中的OGNL详解

    先了解一下OGNL的概念 OGNL的全名称Object Graph Navigation Language.全称为对象图导航语言,是一种表达式语言.使用这种表达式语言,你可以通过某种表达式语法,存取J ...

  7. Python函数作用域的查找顺序

    函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...

  8. httpd安装.md

    httpd 简介 httpd是由apache软件基金会开发的一款著名的web服务器软件.由于其开放源代码,并且拥有跨平台.功能强大.安全稳定等特性,而被广泛使用.早期httpd是在修修补补的基础上成长 ...

  9. php 时间加减

    <?php date_default_timezone_set('PRC'); //默认时区 echo "今天:",date("Y-m-d",time() ...

  10. 发布一个免费开源软件-- PAD流程图绘制软件PADFlowChart

    软件的可执行文件下载:PADFlowChart-exe.zip MD5校验码:91FCA9FEC9665FD09BEB3DA94ADC1CE6 SHA1校验码:ECD742AA3092A085AB07 ...