博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP的学习(7)——九大隐式对象之pageContext对象
阅读量:5100 次
发布时间:2019-06-13

本文共 1331 字,大约阅读时间需要 4 分钟。

  本篇来讲诉JSP中九大隐式对象中最后一个,也是最重要的一个对象——pageContext对象。

  pageContext对象代表了该JSP页面的运行环境,它的作用有:

  ① 这个对象封装了对其它八大隐式对象的引用

  ② pageContext自身还是一个域对象,可以用来保存数据,同时可以通过pageContext这个域对象操作另外三个域(Request域,Session域,ServletContext域)

  ③ pageContext封装了WEB开发中经常涉及到的一些常用操作,例如包含和跳转到其他资源,检索其他域对象中保存的值等等。

 

  比如我们去看看JSP的API,可以看到,在pageContext中有很多获取其他隐式对象的方法:

  

  如果是写JSP,其实在JSP页面中是不能有Java代码的,所有的Java代码都需要使用自定义标签来封装,因此,其实这些方法都是在自定义标签中使用,而在自定义标签中,我们就无法使用另外八大隐式对象了,只能使用pageContext,因此在自定义标签中必须利用pageContext来获取其他隐式对象。

  pageContext能作为一个域对象来存储数据,通常称为page域,而这个page域的范围只是在当前JSP页面中。例如我们可以使用pageContext.setAttribute方法和pageContext.getAttribute方法(这两个方法都从pageContext的父类JSPContext类继承而来)来在page域中设置和获取某个属性值,即存储的数据:

  

  

  同时,pageContext还能指定存储的数据应该保存在哪个域中,并不止在page域上,当然还是刚才那两个方法,只不过重载了:

  

  

其中,“scope”参数代表各个域的常亮,有如下几个常亮:

  

  pageContext中最重要的方法:findAttribute方法,使用pageContext.findAttribute方法能从四个域(page, request, session, context)中寻找存储的数据,查找的顺序也是从小到大(page--->request--->session--->context),只要在某个域中能查到相对应的键值对,就返回,如果四个域都没有则返回null。这个方式对于EL表达式是最重要的,例如JSP页面中有一个EL表达式: ${data}  最终在Servlet中就会被翻译成 pageContext.findAttribute(“data”)。

  pageContext还提供了include包含和forward跳转这两种方法,这两种方法是request.getRequestDispatch.include方法和request.getRequestDispatch.forward方法的简化,其实pageContext.include和pageContext.forward在Servlet中内部依然还是使用request的方式,只是提供了简化。

 

转载于:https://www.cnblogs.com/fjdingsd/p/5117303.html

你可能感兴趣的文章
EhReport ,CReport改进版本,再次改进 ,V1.31
查看>>
『ORACLE』 清理监听日志(11g)
查看>>
来自于一个问题的回答对自己的反思 php怎么发送邮件?发送邮件插件PHPMailer
查看>>
找的网上的js日期格式化问题出错了显示 一堆 NaN的东西
查看>>
eclipse快捷键
查看>>
Linux系统GNOME主题安装与Tweaks工具使用
查看>>
修改DNS服务器。
查看>>
SCP命令
查看>>
使用Flash Builder建SDK为3系列的项目默认为中文的修改方法
查看>>
SQL优化
查看>>
Luogu P1463 [HAOI2007]反素数ant:数学 + dfs【反素数】
查看>>
C#中建立treeView
查看>>
hadoop的安装和配置
查看>>
spinnaker
查看>>
hdu 1599 find the mincost route(无向图的最小环)
查看>>
转载:解读CSS布局之-水平垂直居中(2)
查看>>
第十八章 30限制数组越界
查看>>
浅谈unique列上插入重复值的MySQL解决方案
查看>>
hdu 4859(思路题)
查看>>
11.2.0.4 sql*loader/oci direct load导致kpodplck wait before retrying ORA-54
查看>>