1、Java Web应用开发 第十一章(源码网整理:),JSP标准动作,2,回顾,在JSP页面中,我们通过使用隐式对象可以更加方便地实现我们的效果。隐式对象包含: request response out - 输入输出对象 pageContext session application - 应用作用域对象 page config - Servlet对象 exception - 异常处理对象 了解区分并使用隐式对象,3,目标,JavaBean的概念 JSP的标准动作及其使用,4,JavaBean,JSP强有力的一个方面就是能够使用JavaBean组件体系。JavaBean往往封装了程序的页面逻辑,它
2、是可重用的组件。通过使用JavaBean,可以减少在JSP中脚本代码的使用,这样使得JSP易于维护。 JavaBean就是放置在JSP服务器后台的一个封装了数据和方法的类。JSP通过JavaBean直接调用里面的方法,实现操作的目的。 JSP+JavaBean的组合,是小型项目中最常见的开发模式。 (源码网整理:),5,JavaBean的好处,可重用组件,可在多个应用程序中使用,可以跨平台,JavaBean 的优点,变更方便,6,JavaBean规范,默认的构造函数 类名是公共的 严格的set方法和get方法 为JavaBean 定义包,7,JSP 标准动作,JSP2.0规范定义了一些标准动作
3、。标准动作是一些标签,它们影响JSP运行时的行为和客户端请求的相应,这些动作由容器来实现,包括可以使用JavaBean的动作,JSP2.0标准动作有,8,useBean 动作,.,创建引用并嵌入现有的 Bean,用来创建一个具有ID的JavaBean实例,id 属性创建对 class 属性中所述类的引用,scope 属性代表创建出来的对象绑定的范围作用域,9,useBean 动作,范围指定 JavaBean 在 JSP 页面中的可用性。各种范围选项如下:,request范围变量可以省略,因为容器会自动按照范围大小查找,哪怕在各个范围内都有同名的属性,那么容器也会从范围小的找起。,10,setP
4、roperty 动作, 通过窗体传来的参数名称为ParamName 的值,传给属性myProperty设定myProperty的属性值设定myProperty的值JSP引擎就会把所有request参数与JavaBean中的setXXX方法名进行匹配,即所有的名称与bean的属性匹配的request参数都将被传递到相应对象的属性中。 如果不用,则需要做大量的类型转换工作,利用jsp:setProperty可以实现自动类型转换,11,getProperty 动作,元素将获得Bean的属性值,并可以将其使用或显示在JSP页面中.使用之前,必须用创建它. 标记用来匹配从JavaBean获取某个变量时所
5、使用的getXXX方法,即用于从一个JavaBean中获取到某个变量的值,将该值转换成一个String类型的值,并显示到网页中,12,include动作,这个动作元素用于在当前页面中包含静态和动态的资源,一旦被包含的页面执行完毕,请求处理将在调用页面中继续进行,.,page属性参数为一个相对路径。如果路径以”/”开头,那么路径主要是参照JSP应用的上下文关系路径。如果是以文件名或目录名开头,那么这个路径就是正在使用的JSP文件的当前路径 flush属性可选,默认为false。如果设置为true,当页面输出使用了缓冲区,那么在进行包含工作之前,先要刷新缓冲区,否则不会刷新缓冲区,13,inclu
6、de 动作,该动作可以在它的内容中包含一个或多个 元素,为被包含的页面提供参数信息,“/“/ 以上文本来自 includeFileNeedingAParameter.jsp. ,14,include 动作,与include指令的区别 前者就相当于宏,编译时替代,后者相当于函数,运行时返回. 当采用指令包含资源时,资源的内容(文本或代码)在include指令的位置处被包含进来,成为一个整体,被转换为Servlet 源文件;当采用 动作包含资源时,当前页面和被包含的资源是两个独立的个体,当前页面将请求发送给被包含的资源,被包含资源对请求处理的结果将作为当前页面对请求相应的一部分发送到客户端包含的内容可以是动态改变的,它在执行时才确定,而包含的内容是固定不变的,一经编译,就不能改变的效率比效率低,15,forward 动作,body% ,这个动作允许在运行时将当前的请求转发给一个静态的资源,JSP页面或者Servlet,请求被转向到的资源必须位于同JSP发送请求相同的上下文环境中 这个动作会终止当前页面的执行,16,总结,JavaBean是一种有严格规范的Java类 JSP给我们提供一组标准动作的规范,方便我们进行JSP编程(源码网整理:),