当前位置: 首页 > news >正文

JSP九个隐式对象

JSP九大隐式对象:
request   HttpServletRequest
response   HttpServletResponse
session   HttpSession
application  ServletcContext
config     ServletConfig
exception  (特殊情况下使用)
page      this(本JSP页面)
out        JspWriter(带缓冲的PrintWriter)
pageContext (使普通Java类可访问WEB资源,自定义标签常用)

out隐式对象:
 out对象是通过调用pageContext对象的getOut方法返回的,其作用和用法与ServletResponse.getWriter方法返回的PrintWriter对象非常相似。
JSP页面中的out隐式对象的类型为JspWriter,JspWriter相当于一种带缓存功能的PrintWriter,设置JSP页面的page指令的buffer属性可以调整它的缓存大小,甚至关闭它的缓存。
只有向out对象中写入了内容,且满足如下任何一个条件时,out对象才去调用ServletResponse.getWriter方法,
并通过该方法返回的PrintWriter对象将out对象的缓冲区中的内容真正写入到Servlet引擎提供的缓冲区中:
 1)设置page指令的buffer属性关闭了out对象的缓存功能
 2)out对象的缓冲区已满
 3)整个JSP页面结束

pageContext对象:
 pageContext对象是JSP技术中最重要的一个对象,它代表当前JSP页面的运行环境,这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象,可以用来保存数据。并且,
 这个对象还封装了web开发中经常涉及到的一些常用操作,例如包含和跳转其它资源、检索其它域对象中的属性等。

通过pageContext获得其他对象 :
 getException方法返回exception隐式对象
 getPage方法返回page隐式对象
 getRequest方法返回request隐式对象
 getResponse方法返回response隐式对象
 getServletConfig方法返回config隐式对象
 getServletContext方法返回application隐式对象
 getSession方法返回session隐式对象
 getOut方法返回out隐式对象

pageContext作为域对象:
pageContext对象的方法
public void setAttribute(java.lang.String name,java.lang.Object value)
public java.lang.Object getAttribute(java.lang.String name)
public void removeAttribute(java.lang.String name)
pageContext对象中还封装了访问其它域的方法
public java.lang.Object getAttribute(java.lang.String name,int scope)
public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
public void removeAttribute(java.lang.String name,int scope)
代表各个域的常量
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE
findAttribute方法   

JSP常用标签:
<jsp:include>标签 :
 <jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,
 这种在JSP页面执行时的引入方式称之为动态引入
 语法:
 <jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
  page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
 flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端,默认为false。

<jsp:forward>标签 
 <jsp:forward>标签用于把请求转发给另外一个资源。
<jsp:param>标签 

<jsp:include>与include指令的比较:
 <jsp:include>标签是动态引入, <jsp:include>标签涉及到的2个JSP页面会被翻译成2个servlet,这2个servlet的内容在执行时进行合并。
 而include指令是静态引入,涉及到的2个JSP页面会被翻译成一个servlet,其内容是在源文件级别进行合并。
 不管是<jsp:include>标签,还是include指令,它们都会把两个JSP页面内容合并输出,所以这两个页面不要出现重复的HTML全局架构标签,
 否则输出给客户端的内容将会是一个格式混乱的HTML文档。
 <jsp:include>标签:使用page属性指定被引入资源。
 include指令:使用file属性指定被引入资源。

<jsp:param>标签:
 当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给其它资源时,可以使用<jsp:param>标签向这个资源传递参数。
 语法1:
 <jsp:include page="relativeURL | <%=expression%>">
  <jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
 </jsp:include>
 语法2:
 <jsp:forward page="relativeURL | <%=expression%>">
  <jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
 </jsp:include>
<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。

相关文章:

  • JSTL标签
  • iReport4.6+Tomcat+JavaBean数据源报表1
  • iReport4.6.0图表操作
  • Ant配置小问题
  • jasperreport开发实例及问题
  • jasperreport ireport PDF中文字体完美解决方案
  • iReport+jasperreport创建子表的几种方式(1)
  • iReport连接Mysql创建图表报表
  • iReport+jasperreport创建子表的几种方式(2)
  • Jasperreports导出PDF、web上html的几个实用连接
  • 关于Unity3D中的UnitySendMessage方法的使用!!!
  • Unity3D如何读取保存XML,以及用U3D内置方式保存文件
  • unity3D调用外接摄像头,保存图片、不使用截屏方式
  • Unity3D中Find的用法
  • Unity3D中世界坐标转换到NGUI坐标
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 2018一半小结一波
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • canvas绘制圆角头像
  • gitlab-ci配置详解(一)
  • HashMap ConcurrentHashMap
  • JavaScript设计模式系列一:工厂模式
  • Javascript设计模式学习之Observer(观察者)模式
  • Map集合、散列表、红黑树介绍
  • SegmentFault 2015 Top Rank
  • Vue ES6 Jade Scss Webpack Gulp
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 大型网站性能监测、分析与优化常见问题QA
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 服务器从安装到部署全过程(二)
  • 技术:超级实用的电脑小技巧
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 使用docker-compose进行多节点部署
  • 与 ConTeXt MkIV 官方文档的接驳
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • Linux权限管理(week1_day5)--技术流ken
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #1015 : KMP算法
  • #define与typedef区别
  • (1)(1.13) SiK无线电高级配置(六)
  • (Forward) Music Player: From UI Proposal to Code
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (Python第六天)文件处理
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (十六)Flask之蓝图
  • (四)linux文件内容查看
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (转)大道至简,职场上做人做事做管理
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转载)从 Java 代码到 Java 堆
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本