首先,有两个概念:

1.JSP页面的域对象:pageContext,request,session,application对象(四个)

void setAttribute(String name,Object o):设置属性名对应的属性值

Object getAttribute(String name):获取指定属性名的属性值

Enumeration getAttributeNames():获取所有的属性名组成的Enumeration对象

removeAttribute(String name):移除指定属性名的属性

pageContext<request<session<application对象(对属性的作用域的范围从小到大)都有这些方法,这四个对象称之为域对象。

pageContext:属性的作用范围仅限于当前JSP页面

request:属性的作用范围仅限于同一个请求

session:属性的作用范围仅限于一次会话

application:属性的作用范围限于当前WEB应用,是范围最大的属性作用范围。只要在一处设置属性,在其他各处的JSP或Servlet中都可以获取到。

2.JSP页面的隐含对象:没有声明就可以使用的对象,共9个。

①request:HttpServletRequest的一个对象

②response:HttpServletResponse的一个对象

③pageContext:页面的上下文,是PageContext的一个对象。

可以从该对象中获取到其他8个隐含对象,

也可以从中获取到当前页面的其他信息(在自定义标签时,可以获取比如属性,参数等):

定义一个类:HelloSimpleTag.java

然后在TestTag.jsp页面里使用tt:helloSimple标签

从上面的例子中可以看出,pageContext确实可以获取到request、out等对象。

注意:不是说这9个对象就不能在servlet程序里调用,只是说在JSP页面里可以直接调用这9个对象而不需要先获取到对象。

        比如:在JSP页面就可以直接调用session对象:session.getAttribute。

        而在servlet程序里如果要调用session对象,必须先获取到session对象才可以使用:request.getSession().setAttribute。

       又比如在上面的HelloSimpleTag.java里,存在一个函数setJspContext,这个函数就传入了一个JspContext对象。所以我们可以利用该对象强转成pageContext对象,这样就在java程序里获取到了pageContext对象。于是此时才可以利用该对象获取其他隐含对象比如request、out等对象,然后再利用request、out去实现想实现的功能。

④session:代表浏览器和服务器的一次会话,是HttpSession的一个对象

⑤application:代表当前WEB应用,是ServletContext对象

⑥config:当前JSP对应的Servlet的ServletConfig对象(了解)

⑦out:JspWriter对象,调用out.println()可以直接把字符串打印到浏览器上

⑧page:指向当前JSP对应的servlet对象的引用(了解)

⑨exception:在JSP文件的开头声明了Page指令的isErrorPage="true"时,才可以使用.

<%@ page isErrorPage="true">

最新文章

  1. [转载] tcp那些事1
  2. SCCM部署win7操作系统,系统盘为D盘
  3. YUV主要采样格式理解
  4. C# zip/unzip with ICSharpCode.SharpZipLib
  5. android requestWindowFeature使用详解
  6. 十款最佳Node.js MVC框架
  7. 用python计算md5,sha1,crc32
  8. Error:Cannot run program &quot;svn&quot; (in directory &quot;E:demo\Hello&quot;): CreateProcess error=2,
  9. exp/expdp 与 imp/impdp命令导入导出数据库详解
  10. python练习册0005
  11. NOI2018Day1T1 归程 并查集 kruskal kruskal重构树 倍增表 Dijkstra
  12. spring boot 项目配置字符编码
  13. 安装配置openstack-dashboard(horizon)
  14. flex固定底部栏
  15. 「PHP」设计模式介绍
  16. How to pass multiple parameters in PowerShell invoke-restmethod
  17. 《Cracking the Coding Interview》——第5章:位操作——题目3
  18. spring MVC学习之二
  19. E20180303-hm-xa
  20. CAD绘制一个对齐标注(com接口VB语言)

热门文章

  1. WPF:带复选框CheckBox的树TreeView
  2. label for
  3. DIV设置overflow无效的原因
  4. Android 之 Activity的生命周期
  5. 分布式系统开发的一些相关理论基础——CAP、ACID、BASE
  6. WCF初探-15:WCF操作协定
  7. iOS开发网络篇—数据安全
  8. IT行业的斗争
  9. 2014年4月份第2周51Aspx源码发布详情
  10. 黑马程序员——【Java基础】——正则表达式