JSP与EL隐式对象
一,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隐式对象的更多相关文章
- JSP九大隐式对象
JSP九大隐式对象 request HttpServletRequest response HttpServletResponse session HttpSession application Se ...
- JSP九大隐式对象和四大域对象-----面试
因为jsp实质是一个Servlet对象:jsp在第一次访问时会被Web容器翻译成Servlet,在执行过程:第一次访问---->inex.jsp---->index_jsp.java--- ...
- JSP 4个域对象-9个内置对象-11个EL隐式对象
一. 四大域对象 1. PageContext :页面范围的数据 2. ServletRequest:请求范围的数据 3. HttpSession:会话范围的数据 4. ServletContext: ...
- JSP页面以及JSP九大隐式对象
JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比 ...
- JSP 九大隐式对象
final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null; fina ...
- JSP 9大隐式对象和四个作用域的范围
Java中 九大隐式对象说明 输入/输出对象: request response out 作用域通信对象: session application pageContext Servlet ...
- JavaWeb学习记录(十七)——JSP九大隐式对象
public void _jspService(HttpServletRequest request, HttpServletResponse response) throws java.io.IOE ...
- JSP九个隐式对象及作用域
out:JspWriter实例对象,作用域为page(页面执行期) 向客户端输出内容 request:HttpServletRequest实例对象,作用域为request(用户请求期) 请求信息 re ...
- JSP中的隐式对象(implicit object)
随机推荐
- ipv4理论知识2-分类编址、ip分类、网络标识、主机标识、地址类、地址块
分类编址 ipv4的体系结构中有分类编址和无分类编址(后续会介绍到),在分类编址时,ipv4地址分为A.B.C.D.E这5类.每类占用的IP比例和个数如下图: ipv4分类识别 计算机以二进制方式存储 ...
- MySQL双主(主主)架构方案
在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mysql入 ...
- Struts2 OGNL案例
一>>原始类型与包装类型 先定义两个实体类User和Address User package cn.entity; public class User { private String n ...
- poj[1187][Noi 01]陨石的秘密
Description 公元11380年,一颗巨大的陨石坠落在南极.于是,灾难降临了,地球上出现了一系列反常的现象.当人们焦急万分的时候,一支中国科学家组成的南极考察队赶到了出事地点.经过一番侦察,科 ...
- Warning: file_put_contents(data.txt): failed to open stream: Permission denied in /Library/WebServer/Documents/test.php on line 22
最近在学习PHP 在保存文件的时候报Warning: file_put_contents(data.txt): failed to open stream: Permission denied in ...
- C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 所有的基础数据都可以恢复删除
客户的需求如下: 所有基礎信息需要記錄創建人,創建時間,更改人,更改時間,刪除人,刪除時間.有停用基礎信息功能(停用不是刪除,只是暫時停用).基礎信息可以查出已經刪除的信息(有選項可以選擇),有方法把 ...
- 使用Memberane Moniter监控HTTP & SOAP requests
Memberane Moniter 使用方法见左侧Documentation 此工具可以监控到每一次发生在指定端口的http请求或者soap请求,如图所示. 但是个人认为仍然有几个问题: 1.不能真正 ...
- Netron开发快速上手(二):Netron序列化
Netron是一个C#开源图形库,可以帮助开发人员开发出类似Visio的作图软件.本文继前文”Netron开发快速上手(一)“讨论如何利用Netron里的序列化功能快速保存自己开发的图形对象. 一个用 ...
- C#进阶系列——DDD领域驱动设计初探(四):WCF搭建
前言:前面三篇分享了下DDD里面的两个主要特性:聚合和仓储.领域层的搭建基本完成,当然还涉及到领域事件和领域服务的部分,后面再项目搭建的过程中慢慢引入,博主的思路是先将整个架构走通,然后一步一步来添加 ...
- ionic配置 问题小记
1.用命令ionic start myApp tabs新建项目时,在最后面提示ionic\cli.js报错的问题(具体问题描述忘记了) 安装 node-inspector 即可 ,使用命令 cnpm ...