《JSP语法详解》PPT课件.ppt_第1页
《JSP语法详解》PPT课件.ppt_第2页
《JSP语法详解》PPT课件.ppt_第3页
《JSP语法详解》PPT课件.ppt_第4页
《JSP语法详解》PPT课件.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 JSP语法详解,3.1 JSP文件的组成,3.3 JSP脚本元素,3.4 JSP指令元素,3.5 JSP动作元素,3.2 JSP注释方式,3.1 JSP文件的组成,3.1.1 JSP页的创建,3.1.2 JSP文件的组成元素,3.1.3 JSP转义字符,一个简单的JSP页面:,JSP页的创建, 第一个JSP程序 ,运行效果:,JSP文件的组成元素(1),1JSP中的指令标识,利用JSP指令可以使服务器按照指令的设置来执行动作和设置在整个JSP页面范围内有效的属性。例如:,2HTML标记语言,HTML标记语言在JSP页面中作为静态的内容,浏览器将会识别这些HTML语言并执行。在JSP程序开发中,这些HTML标记语言主要负责页面的布局、设计和美观,可以说是网页的框架。,JSP文件的组成元素(2),3加入Java代码,加入到JSP页面中的Java代码,在客户端浏览器中是不可见的。它们需要被服务器执行,然后由服务器将执行结果与HTML标记语言一同发送给客户端进行显示。通过向JSP页面中加入Java代吗,可以使该页面生成动态的内容。例如:,4JSP表达式,JSP表达式主要用来输出,它可以向页面输出内容显示给用户,还可以用来动态的指定HTML标记中属性的值。 例如:,JSP转义字符,转义字符是以“”开头的特殊字符,在屏幕上是不能显示的,而且在程序中无法用一般形式的字符表示,只能用这种特殊形式表示。常见的转义字符如表所示:,n和r及javascript的使用, alert(javascript jspn ccr aat f bbb “ ); function aa() alert(“function“); 转义字符示例 cc aat f bbb “ “; % Jsp转义字符:java code jsp cc aat f bbb “ alert(javascript); ,3.2 JSP注释方式,3.2.1 HTML注释,3.2.2 JSP隐藏注释,3.2.3 脚本段注释,注释语句可以帮助程序员识别和理解程序代码。在JSP页面中主要存在3种注释方式,分别为HTML注释、JSP隐藏注释及脚本段注释,HTML注释,HTML注释的语法格式如下:, ,HTML注释将被发送到客户端,但不直接显示,用户在客户端源代码中可以查看到。,例如:,JSP隐藏注释,JSP注释语句在传输到客户端的过程中会被过滤掉,不会发送到客户端。JSP隐藏注释语法格式如下:,例如:,JSP注释示例:, Jsp注释 ,脚本段注释,脚本段中包括两种注释方式:单行注释和多行注释,1单行注释,单行注释是以“/”符号后面的所有内容为注释内容,服务器对该内容不能进行任何操作。脚本段在客户端通过查看源代码是不可见的,单行注释的格式如下:,/ 注释内容,2多行注释,多行注释通过“/*”和“*/”符号进行标记,这两个标记必须成对出现,在它们之间输入的注释内容可以换行。多行注释格式如下:,/* 注释内容1 注释内容2 注释内容3 */,3.3 JSP脚本元素,3.3.1 声明语句,3.3.2 脚本段,3.3.3 JSP表达式,JSP中脚本元素包括3部分,在JSP页面中需要通过特殊的约定来表示这些元素,并且对于客户端这些元素是不可见的,它们都是由服务器执行。,声明语句,声明语句(Declaration)在JSP页面中定义方法和变量,其声明格式如下:,在页面中通过声明元素声明的方法和变量,在整个页面内都有效,它们将称为JSP页面被转换为类文件后中的方法和属性,并且他们会被多个线程即多个用户共享。也就是说,其中的任何一个线程对声明的变量或方法的修改都会改变它们原来的状态。它们的生命周期从创建到服务器关闭后结束。,注意:在“%”与“!”之间不要空格。声明的语法与在Java语言中声明变量和方法是一样的。,示例:网站计数器, 网站计数器 本网页访问次数是:次 ,脚本段,脚本段(Scriptlets)就是JSP代码片段或脚本片段,嵌在“”标记中。在脚本段中可以定义变量、调用的方法和进行各种表达式运算,且每行语句后面加入分号。这种Java代码在Web服务器响应请求时会运行。脚本段使用格式如下:,说明:脚本程序的使用比较灵活,实现的功能是JSP表达式无法实现的。,JSP表达式,JSP表达式用来把Java数据向页面直接输出信息,其使用格式如下:,JSP表达式与JSP页面中嵌入到脚本段中的out.print()方法实现的功能相同。如果表达式输出的是一个对象,则该对象的toString()方法被调用,表达式将输出toString()方法返回的内容。 例如:,运行结果:,3.4 JSP指令元素,3.4.1 页面指令元素:page 3.4.2 包含指令元素:include 3.4.3 提供动作指令元素:taglib,JSP指令元素主要包括3种:Page指令、Include指令及taglib指令。以“”标记开始,以“%”标记结束。,页面指令元素:page(1),page指令即页面指令,用于定义JSP文件中有效的属性。该指令可以放在JSP页面中的任意位置。Page指令包含多种属性,通过设置这些属性可以影响到当前的JSP页面。Page指令中除import属性外,其他属性只能在指令中出现一次。Page指令语法格式如下:,页面指令元素:page(2),page指令各属性所具有的功能如下:,language:设置当前页面中编写JSP脚本使用的语言。 import:用于向JSP文件中导入需要用户的类包。在Page指令中可多次使用该属性来 导入多个包 。 contentType:设置响应结果的MIME类型。默认MIME类型是text/html,默认字符编码 为ISO-8859-1。当多次使用Page指令时,该属性只有第一次使用有效 。 session:说明当前页面是否支持session ,默认值为ture ,表示支持session 。 buffer:设置out对象使用的缓冲区的大小。如设置为none,说明不使用缓存,而直接 通过out对象进行输出;如果将该属性指定为数值,则输出缓冲区的大小不 应小于该值。默认值为8KB 。 autoFlush:设置输出流的缓冲区是否自动清除。默认设置值为true,说明当缓冲区已满 时,自动将其中的内容输出到客户端。如果设置为false,则当缓冲区中的 内容超出其设置的大小时,会产生“JSP Buffer overflow”溢出异常 。 isThreadSafe:默认值为true,说明当前JSP页被转换为Servlet后,会以多线程的方式来 处理来自多个用户的请求;如果设置为false,则转换后的Servlet会实现 SigleThreadModel接口,该Servlet将以单线程的方式来处理用户请求,即 其他请求必须等待直到前一个请求被处理结束。,页面指令元素:page(3),page指令各属性所具有的功能(续):,info:设置为任意字符串,如当前页面的作者或其他相关的页面信息。可以通过 Servlet.getServletInfo()方法来获取设置的字符串 。 errorPage:指定一个当前页面出现异常时所要调用的页面。如果属性值是以“/”开头的 路径,则将在当前Web应用的根目录下查找文件;否则,将当前页面的目 录下查找文件 。 isErrorPage:设置为true,说明在当前页面中可以使用excpetion异常对象。若在其他页面 中通过errorPage属性指定了该页面,则当调用页面出现异常时候,会跳转 到该页面,并且在该页面中可以通过exception对象输出错误信息。相反, 如果将该属性设置为false,则在当前页面中不能使用execption对象。该属 性默认值为false 。 isELlgnored:可以使JSP容器忽略表达式语言“$”。其值只能是ture或false。设置为true 则忽略表达式语言;设置为false,则不忽略表达式语言 。 extends:设置当前JSP页产生的Servlet是继承哪个父类。在JSP中通常不会设置该 属性,JSP容器会提供转换后的Servlet继承的父类。并且如果设置该属性, 一些改动会影响JSP的编译能力 。 pageEncoding:用来设置JSP页字符的编码,默认值是“ISO-8859-1” 。,包含指令元素:include,include指令用于在当前的JSP页面中在当前使用该指令的位置嵌入其他的文件,如果被包含文件有可以执行的代码,则显示代码执行结果。include指令的语法格式如下:,include指令只存在file属性,表示此file的路径,路径名指的是相对路径,不需要指定端口、协议或域名等。该属性不支持任何表达式,也不允许传递任何参数。,注意:如果该属性值以“/”开头,那么指定的是一个绝对路径,将在当前应用的根目录下查找文件,如果是以文件名称或文件夹名开头,那么指定的相对路径将在当前页面的目录上查找文件。,include示例:,提供动作指令(标签库指令)元素:taglib,taglib指令可以在页面中使用这些基本标记或自定义的标记来完成特殊的功能,在JSP页面中启动客户端定制行为。taglib指令语法格式如下:,taglib元素具有两个属性:,uri:指定标签库存放位置。,prefix:该属性指定了标签的前缀,此前缀不能使用已被sun公司声 明保留字。前缀名不能为jsp、jspx、java、javax、servlet、 sun、和sunw。,taglib示例:, taglib指令使用示例 ,需要standard.jar和jstl.jar存放与WEB-INF/lib目录下,3.5 JSP动作元素,3.5.1 包含文件:,3.5.2 请求转发:,3.5.3 声明使用JavaBean:,3.5.4 设置JavaBean属性值:,3.5.5 获取JavaBean属性值:,3.5.6 声明使用Java插件:与,3.5.7 参数传递:与,3.5.8 其他动作元素,包含文件: (1),该元素允许包含动态或静态文件,如果包含的文件是静态的,它仅仅是把包含文件的内容加到JSP文件中去。包含静态文件的使用格式如下:,如果包含的文件是动态的。这个被包含文件也会被JSP编译器执行,并且在编译时可以传递参数。包含动态文件使用格式如下:,包含文件: (2),属性及子元素,page属性:该属性指定了被包含文件的路径,其值可以是相 对路径的表达式。当路径是以“/”开头时,则按 照当前应用的路径查找该文件;如果路径是以文 件名或目录名称开头,那么,将按照当前的路径 查找被包含的文件。 flush属性:该属性标识当输出缓冲区满时,是否清空缓冲区 该属性默认值为false,通常情况下设置为true。 子元素:该子元素可以向被包含的动作页面中 传递参数。,包含文件: (3),与include指令的区别,(1)是直接包含源代码,包含请求的 HTML代码,并且支持JSP表达式和Struts应用中的请求模式。 (2)通过包含一个JSP页面,在包含的页面中相关的 response操作都被忽略,也就是说当前操作不能通过response对象重定向到其他页面。如果用包含的JSP页面,在该页面中所有的response操作都会正常运行。 (3)元素请求代码时,可以带参数,而就不可以带参数。 (4)从执行速度角度上讲,比请求速度快, 因为仅处理一个请求,而处理两个请 求。 (5)从实际应用角度上讲,用于检测用户是否登录、网站标识或网站的一些静态不变的信息;而用于发送一个请求,并接收返回的HTML,并可以加入参数。,使用include动作还是include指令?,对不经常变化的内容,用include指令是合适的,如果需要的内容是经常变化的,则需要动作元素. 使用include指令,如果被包含的文件发生改变,那么,用到它的所有Jsp页面都需要更新。 仅当include动作不能满足要求时,我们才应该使用include指令。,既然include指令产生难以维护的代码,为什么还要使用它?,因为include指令更为强大。include指令允许所包含的文件中含有影响主页面的Jsp代码,比如响应报头的设置和字段、方法的定义。,例子:/subpage.jsp /mainpage.jsp ,当然使用include动作时这是不可能的,因为num变量未定义,主页面不能成功的转换成servlet。,请求转发:,该元素用于将客户端请求从一个页面转发到另一个JSP页面、HTML或相关的资源文件中。当该元素被执行后,当前页面将不再被执行,而是去执行该元素指定的目标页面。使用格式如下:,如果转发目标是一个动态文件,还可以向该文件中传递多个参数,具体使用格式如下:, ,参数及元素说明:,page属性:该属性指定了目标文件的路径。 元素:该元素用来向动态的目标文件中传递参数。,声明使用JavaBean: (1),该元素可以在JSP页面中创建一个JavaBean实例,并且通过属性的设置可以将该实例存储到JSP中的指定范围内。使用格式如下:, 其他元素设置,如 ,声明使用JavaBean: (2),属性说明,id属性:该属性指定一个变量,在所定义的范围内或Scriptlet中将使用该变量来对所创建的JavaBean实例进行引用。该变量必须符合Java中变量的命名规则。,scope属性:该属性指定了所创建JavaBean实例的存取范围,默认属性值是“page”。scope属性具有的可选值见下表:,声明使用JavaBean: (3),属性说明(续),class属性:该属性指定了一个完整的类名,指定的类名不能是抽象的,它必须具有公共的、没有参数的构造方法。在没有设置type属性时,必须设置class属性。,type属性:该属性用于设置由id属性指定的变量类型,可以指定要创建实例的类本身、类的父类或是一个接口。,beanName属性:该属性可以是类文件、JavaBean实例或包含JavaBean的串行化文件(.ser文件)。当JavaBean不存在与指定范围内时,才可以使用此属性。它必须使用类型属性来指定要将何种类型的Bean实例化。beanName属性不能class属性一起使用,并且区分大小写。,声明使用JavaBean: (4),元素的使用:,(1)不存在Body的格式如下:,(2)存在Body的格式如下:,设置JavaBean属性值:(1),该元素通常情况下与元素一起使用,它调用JavaBean中的setXXX()方法,将请求中的参数赋值给由元素创建的JavaBean中对象的简单属性或索引属性。该属性的使用格式如下:,元素的属性,name:该属性用来指定一个存在JSP中某个范围中的JavaBean 实例。,设置JavaBean属性值:(2),元素的属性,property=“*”:该属性说明request请求中的所有参数值将被一一 赋给JavaBean中与参数具有相同名字的属性。,property=“属性名称”:该属性取值为JavaBean中的属性时,则只 会将request请求中与该JavaBean属性同名的一个 参数的致赋给这个Java

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论