内蒙古科技大学 教案 第二章JSP语法 本章学习重要目标」 JSP页面的基本结构 变量方法和的声明 Java程 JSP指令标 JSP动作标记 §2.1JSP页面的基本结构 一、普通的HTML标记符 二、JSP标签,如指令标签、动作标签。 三、变量和方法的声明。 四、java程序片。 五、java表达式 §2.2变量和方法的声明 在”<%1”和%>”标记符号之间声明变量和方法。 (一)变量的声明 1.在”<1和6>“标记符号之间成置Java的变量声明语句 2.变量的类型可以是Java语言允许的任何数据类型。 3.这些变量称为JSP页面的成员变量 int x.v=100.z: String tom="study JSP" Datedate: 》 4.(%!和%>之间声明的变量在整个JSP页面都有效。 5.因为JSP引擎转换JSP页面成Jaa文件时,将这些变量作为类的成员变量,这 些变量的内存空间直到服务器关闭才被释放。 6。所以所有请求该页面的线程共享JP页面的成员变量,任何客户对该成员变量 的操作结果都影响其它客户。 (二)方法的声明 1.<%!和》之间声明方法,该方法在整个JSP页面有效,但是该方法内定义的变 量只在该方法内有效。 2.这些方法在Java程序片中调用。当方法被调用时,方法中的变量被分配内存 调用完毕释放所古 内存。 3.当多个客户请求一个JSP页面时,可以使用方法操作成员变量。 4.<%!和》之间声明方法,该方法在整个JSP页面有效,但是该方法内定义的变 量只在该方法内有效。 5。这些方法在Java程序片中调用。当方法被调用时,方法中的变量被分配内存, 第1页
内 蒙 古 科 技 大 学 教 案 第 1 页 第二章 JSP 语法 本章学习重要目标: JSP 页面的基本结构 变量方法和的声明 Java 程序片 Java 表达式 JSP 中的注释 JSP 指令标记 JSP 动作标记 §2.1 JSP 页面的基本结构 一、普通的 HTML 标记符 二、JSP 标签,如指令标签、动作标签。 三、变量和方法的声明。 四、java 程序片。 五、java 表达式 §2.2 变量和方法的声明 在”<%! ” 和 ”%> ”标记符号 之间声明变量和方法。 (一)变量的声明 1.在”<%!”和”%>”标记符号之间放置 Java 的变量声明语句。 2.变量的类型可以是 Java 语言允许的任何数据类型。 3.这些变量称为 JSP 页面的成员变量 <%! int x,y=100,z; String tom=“study JSP”; Date date; %> 4.<%!和 %>之间声明的变量在整个 JSP 页面都有效。 5. 因为 JSP 引擎转换 JSP 页面成 Java 文件时,将这些变量作为类的成员变量,这 些变量的内存空间直到服务器关闭才被释放。 6. 所以所有请求该页面的线程共享 JSP 页面的成员变量,任何客户对该成员变量 的操作结果都影响其它客户。 (二)方法的声明 1. <%!和 %>之间声明方法,该方法在整个 JSP 页面有效,但是该方法内定义的变 量只在该方法内有效。 2. 这些方法在 Java 程序片中调用。当方法被调用时,方法中的变量被分配内存, 调用完毕释放所占的内存。 3. 当多个客户请求一个 JSP 页面时,可以使用方法操作成员变量。 4. <%!和 %>之间声明方法,该方法在整个 JSP 页面有效,但是该方法内定义的变 量只在该方法内有效。 5. 这些方法在 Java 程序片中调用。当方法被调用时,方法中的变量被分配内存
内蒙古科技大学 教 案 调用完毕释放所占的内存。 6.当多个客户请求一个JSP页面时,可以使用方法操作成员变量。 §2.3java程序片 一、<%和%>之间插入Java程序片。一个页面的多个程序片将按顺序执行。 二、局部变量的性质:在JSP页面的所有程序片及表达式中有效:不同客户的局部 变量互不影响。 §2.4java表达式 能求值。表达式的值由服务器计算,并<%=和%>之间插入一个表达式。这个表达 式必须将结果以字符串形式发送到客户端显示。 §2.5JSP中的注释 一、HTML注释格式: 注释内容 二、JSP注释格式: <%注释内容.%> §2.6JSP指令标记 一、page指令标签。 (一)page指令用来定义整个JSP页面的一些属性和这些属性的值,属性值用单引号 或双引号括起来。可以用一个page指令指定多个属性的值,也可以使用多个Dage指令 分别为每个属性指定值 (二)page指令的作用对整个JSP页面有效,与其书写的位置无关,习惯把page指 令写在jSP页面的最前面。 (三)例如: <@page属性1=“属性1的值”属性2=“属性2的值”》或 <和page属性1=“属性1的值”) <%6page属性2=”属性2的值”%> <%e page 属性n=属性n的值”》 (四)Dage指令标记可以指定如下属性的值: contentType、import、language、session、buffer、autoFlush、isThreadSafe pageEncoding .contentType属性 ()contentType属性值确定JSP页面响应的WTE( Extention)类型(web浏览器指定应用程序响应接受的服务器米的程序)和JSP页面 字符的编码。 (②)例t如:<%page contentTypes-"text/html:charset-CB2312"%> (3)contentType的默认值是“text/html;charset=-IS0-8859-1" (④)不允许两次使用page指令给contentType属性指定不同的属性值 第2页
内 蒙 古 科 技 大 学 教 案 第 2 页 调用完毕释放所占的内存。 6. 当多个客户请求一个 JSP 页面时,可以使用方法操作成员变量。 §2.3 java 程序片 一、<% 和 %>之间插入 Java 程序片。一个页面的多个程序片将按顺序执行。 二、局部变量的性质:在 JSP 页面的所有程序片及表达式中有效;不同客户的局部 变量互不影响。 §2.4 java 表达式 能求值。表达式的值由服务器计算,并<%= 和 %>之间插入一个表达式。这个表达 式必须将结果以字符串形式发送到客户端显示。 §2.5 JSP 中的注释 一、 HTML 注释格式: <!- 注释内容 -> 二、 JSP 注释格式: <%- 注释内容 -%> §2.6 JSP 指令标记 一、page 指令标签。 (一) page 指令用来定义整个 JSP 页面的一些属性和这些属性的值,属性值用单引号 或双引号括起来。可以用一个 page 指令指定多个属性的值 ,也可以使用多个 page 指令 分别为每个属性指定值 . (二) page 指令的作用对整个 JSP 页面有效,与其书写的位置无关,习惯把 page 指 令写在 JSP 页面的最前面。 (三) 例如: <%@ page 属性 1=“属性 1 的值” 属性 2= “属性 2 的值” .%> 或 <%@ page 属性 1="属性 1 的值" %> <%@ page 属性 2="属性 2 的值" %> . . <%@ page 属性 n="属性 n 的值" %> (四) page 指令标记可以指定如下属性的值: contentType、import、language、session、buffer、autoFlush 、isThreadSafe、 pageEncoding 1. contentType 属性 (1) contentType 属性值确定 JSP 页面响应的 MIME(Multipurpose Internet Mail Extention)类型(web 浏览器指定应用程序响应接受的服务器来的程序)和 JSP 页面 字符的编码。 (2) 例如:<%@ page contentType="text/html;charset=GB2312" %> (3) contentType 的默认值是“text/html;charset=ISO-8859-1” (4) 不允许两次使用 page 指令给 contentType 属性指定不同的属性值
内蒙古科技大学 教 案 2.1 anguage属性 ()定义JSP页面使用的脚本语言,该属性的值目前只能取“java”。 ②)为1anga属性指定值的格式: <%e page language="java"%> 3.import属性 (1)该属性的作用是为JSP页面引入Jav运行环境提供的包中的类,这样就可以 在JSP页面的程序片部分、变量及函数声明部分、表达式部分使用包中的类。 (2)例如 4.session属 page import="java.i."java.util.Date (I)设置是否需要使用内置的session对象。 (2)session属性的值可以是true和false。 (3)默认的属性值是true。 5.buffer属性 (①)指定内置输出流对象ut设置的缓冲区的大小或不使用缓冲区。 (②)buffer属性可以取值none,设置out不使用缓冲区。buffer属性的默认值 是8kb。 (3)例:<0 page buffers=24kb”影> 6.autoFlush属性 ()指定out的缓冲区被填满时,缓冲区是否自动刷新。autoFlush属性可以或 值true或false, (2)autoFlush属性的默认值是true。 (3)当autoFlush属性取值false时,如果out的缓冲区被填满,就会出现缓存溢 出异常 (④当buffer的值是none时, autoFlush属性值不能设置为false 7.isThreadSafe属性 (1)用来设置JSP页面是否可多线程访问。 (②)isThreadSafe属性的属性值取true或false。当isThreadSafe属性值设置为 rue时,JSP页面能同时响应多个客户的请求,当isThreadSafe属性值设置为false 时,JSP页面能同一时刻只能处理响应 个客户的请求,其它客户须排队等待。 (3)isThrea e属性的默认值是true: 二、include指令标签 (一)可以在JSP页面某处整体嵌入一个文件, <%@include files="文件的URL"%> (二)如果该文件和当前JSP页面在同一Wb服务目录中,那么“文件的URL”就是 文件的名字:如果该文件在JSP页面所在的Wb服务目录的 个子目录中,比如leDi 子目录中,那么“文件的URL”就是“leDi/文件的名字” (三)静态插入,就是当前JSP页面和插入的文件合并成一个新的SP页面,然后JSP 引擎再将这个新的JSP页面转译成Java文件。 §2.7JSP动作标签 动作标签是一种特殊的标签,他影响JSP运行时的功能。 一、include动作标签。 第3页
内 蒙 古 科 技 大 学 教 案 第 3 页 2. language 属性 (1) 定义 JSP 页面使用的脚本语言,该属性的值目前只能取“java”。 (2)为 language 属性指定值的格式: <%@ page language="java" %> 3. import 属性 (1) 该属性的作用是为 JSP 页面引入 Java 运行环境提供的包中的类,这样就可以 在 JSP 页面的程序片部分、变量及函数声明部分、表达式部分使用包中的类。 (2)例如:<%@ page import="java.io.*", "java.util.Date" %> 4. session 属性 (1) 设置是否需要使用内置的 session 对象。 (2) session 属性的值可以是 true 和 false。 (3) 默认的属性值是 true。 5.buffer 属性 (1) 指定内置输出流对象 out 设置的缓冲区的大小或不使用缓冲区。 (2) buffer 属性可以取值 none,设置 out 不使用缓冲区。 buffer 属性的默认值 是 8kb。 (3) 例:<%@ page buffer= “24kb” %> 6. autoFlush 属性 (1) 指定 out 的缓冲区被填满时,缓冲区是否自动刷新。 autoFlush 属性可以取 值 true 或 false, (2) autoFlush 属性的默认值是 true。 (3) 当 autoFlush 属性取值 false 时,如果 out 的缓冲区被填满,就会出现缓存溢 出异常。 (4) 当 buffer 的值是 none 时, autoFlush 属性值不能设置为 false。 7. isThreadSafe 属性 (1) 用来设置 JSP 页面是否可多线程访问。 (2) isThreadSafe 属性的属性值取 true 或 false。当 isThreadSafe 属性值设置为 true 时,JSP 页面能同时响应多个客户的请求,当 isThreadSafe 属性值设置为 false 时,JSP 页面能同一时刻只能处理响应一个客户的请求,其它客户须排队等待。 (3) isThreadSafe 属性的默认值是 true。 二、include 指令标签 (一) 可以在 JSP 页面某处整体嵌入一个文件。 <%@ include file= "文件的 URL " %> (二)如果该文件和当前 JSP 页面在同一 Web 服务目录中,那么“文件的 URL”就是 文件的名字;如果该文件在 JSP 页面所在的 Web 服务目录的一个子目录中,比如 fileDir 子目录中,那么“文件的 URL”就是“fileDir/文件的名字”。 (三)静态插入,就是当前 JSP 页面和插入的文件合并成一个新的 JSP 页面,然后 JSP 引擎再将这个新的 JSP 页面转译成 Java 文件。 §2.7 JSP 动作标签 动作标签是一种特殊的标签,他影响 JSP 运行时的功能。 一、include 动作标签
内蒙古科技大学 教 案 (一)该标签使JSP页面动态包含一个文件。JSP页面运行时才将文件加入。 (二JSP服务引擎将当前SP页面转译成Java类文件时,不把动作指令include所包 含的文件和原JSP页面合并成一个新的SP页面,而是告诉Java解释器,当文件在JSF 运行时才被包含进来。 Include动作标签和include指令标签的区别 1.动作标签执行时对包含的文件处理,指令标签在转译前处理。 2.动作标签所包含的文件在罗组和语法上独立。指今标签不独立 对的形式为其它标签提供附加信息 (二)param标记不能独立使用,需作为jsp:include、jp:forward标记的子标记来使用 (三)格式:<jsp:param name=-“名字”value=“指定param的值> (四)当该标记与jsp:include动作标记一起使用时,可以将param标记中的值传递到 nclude动作标记要加载的文件中去,被加载的JSP文件可以使用Tomcat服务器提供的 request内置对象获取动作标记的pram子标记中name属性所提供的值 三、forward动作标签。 (一)当该标记与jp:include动作标记一起使用时,可以将param标记中的值传递到 include动作标记要加载的文件中去,被加载的JSP文件可以使用Tomcat服务器提供的 cqucst内置对象获取include动作标记的param子标记中namc属性所提供的值. jp:forward>f和<jp.:inlude>区别: L.<jsp:forward>从 个JsP文件传递request信息到另外一个JSP文件, <jsp:forward>>后面的部分将不会被执行。 可以使用〈jsp:param>传递参数。 2.jsp:include>将包含的文件放在JSP中和他一起执行。可以使用<jsp:param>传 递参数。 四、useBean动作标签 (一)该标记用来创建并使用一个Javabean,是非常重要的一个动作标记. (仁)Sun公司的侣导是:用HTML完成JSP页面的静态部分,用Javabean完成动态部 分,实现真正意义上的静态和动态分离。 第4页
内 蒙 古 科 技 大 学 教 案 第 4 页 (一)该标签使 JSP 页面动态包含一个文件。JSP 页面运行时才将文件加入。 (二)JSP 服务引擎将当前 JSP 页面转译成 Java 类文件时,不把动作指令 include 所包 含的文件和原 JSP 页面合并成一个新的 JSP 页面,而是告诉 Java 解释器,当文件在 JSP 运行时才被包含进来。 Include 动作标签和 include 指令标签的区别 1.动作标签执行时对包含的文件处理,指令标签在转译前处理。 2.动作标签所包含的文件在逻辑和语法上独立。指令标签不独立。 二、param 动作标签。 (一) 以“名字-值”对的形式为其它标签提供附加信息. (二) param 标记不能独立使用,需作为 jsp:include、jsp:forward 标记的子标记来使用。 (三) 格式:<jsp:param name=“名字” value=“指定 param 的值”> (四) 当该标记与 jsp:include 动作标记一起使用时,可以将 param 标记中的值传递到 include 动作标记要加载的文件中去,被加载的 JSP 文件可以使用 Tomcat 服务器提供的 request 内置对象获取 include 动作标记的 param 子标记中 name 属性所提供的值.。 三、forward 动作标签。 (一) 当该标记与 jsp:include 动作标记一起使用时,可以将 param 标记中的值传递到 include 动作标记要加载的文件中去,被加载的 JSP 文件可以使用 Tomcat 服务器提供的 request 内置对象获取 include 动作标记的 param 子标记中 name 属性所提供的值. <jsp:forward>和<jsp:include>区别: 1.<jsp:forward>从一个 JSP 文件传递 request 信息到另外一个 JSP 文件, <jsp:forward>后面的部分将不会被执行。 可以使用 <jsp:param> 传递参数。 2.<jsp:include>将包含的文件放在 JSP 中和他一起执行。可以使用 <jsp:param> 传 递参数。 四、useBean 动作标签。 (一)该标记用来创建并使用一个 Javabean,是非常重要的一个动作标记. (二)Sun 公司的倡导是:用 HTML 完成 JSP 页面的静态部分,用 Javabean 完成动态部 分,实现真正意义上的静态和动态分离