第2章 JSP页面与JSP标记.ppt_第1页
第2章 JSP页面与JSP标记.ppt_第2页
第2章 JSP页面与JSP标记.ppt_第3页
第2章 JSP页面与JSP标记.ppt_第4页
第2章 JSP页面与JSP标记.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、第2章,普通高等教育“十一五”国家级规划教材,JSP页面与JSP标记,JSP页面与JSP标记,主要内容 JSP页面的基本结构 变量和方法的声明 Java程序片 表达式 JSP中的注释 JSP指令标记 JSP动作标记 难点 Java程序片的运行原理 include指令标记与include动作标记 关键实践 编写一个JSP页面,让该JSP页面包含5种基本的元素 编写含有JSP指令标记的JSP页面 编写含有JSP动作标记的JSP页面,第2章导读,JSP页面与JSP标记,2.1 JSP页面的基本结构,JSP页面可由5种元素组合而成: 普通的HTML标记符; JSP标记,如指令标记、动作标记; 变量和方

2、法的声明; Java程序片; Java表达式 ;,JSP页面的运行原理: 把JSP页面中普通的HTML标记符号,交给客户的浏览器执行显示。 JSP标记、数据和方法声明、Java程序片由Tomcat服务器负责执行,将需要显示的结果发送给客户的浏览器。 Java表达式由Tomcat服务器负责计算,将结果转化为字符串,交给客户的浏览器负责显示。,JSP页面与JSP标记,开始和结束标记 以结尾,格式: 例如: example2_1.jsp,JSP页面与JSP标记,1.声明变量 “ ” 之间声明的变量称作JSP页面的成员变量。 变量类型可是JAVA的任何数据类型。 整个JSP页面内都有效,与位置无关,习

3、惯写在 JAVA程序片的前面。 作为类的成员变量,内在空间直到服务器关闭才 被释放。 当多个客户请求一个JSP页面时,多个线程将共享 这些变量和方法,因而任何一个用户对这些变量 操作的结果,都会影响到其他用户,2.2 变量和方法的声明,JSP页面与JSP标记,基本数据类型 1)整型 三种形式:十进制、八进制(0开头)、十六进制(0 x开头)。具体类型如下: byte类型 有符号,范围-128127。例如: byte a,b=12; short类型(很少使用) 有符号,范围-3276832767。例如: short d,e234; int类型 有符号,范围-2147483684 21474836

4、83。例如: int x,y=12;,JSP页面与JSP标记,long类型 有符号,范围-264 264-1。例如: long x,y=-0 x12; 2)实型 Float类型(单精度) 例如:float x,y123.56; double类型(双精度) 例如:float x,y123.56; 3)布尔型boolean 只有true和false两种值 例如:boolean x,y,zfalse; 3)字符型char 用单引号括起来。例如:char xx123;,JSP页面与JSP标记,思考:char rtnn;表示什么? 4)字符串型String 用双引号括起来的一串字符。例如: String

5、 myStr=“xyz”; 注意:是对象,而非数据!有以下重要方法: length()、 boolean equals(String str) String substring(int beginIndex) String substring(int beginIndex, int endIndex) boolean startsWith(String prefix) int indexOf(String str) 向后 int indexOf(String str, int fromIndex) 向后,JSP页面与JSP标记,String toLowerCase() String toUpp

6、erCase() String trim() String replaceAll(String regex, String replacement) 该方法用字符串replacement的内容替换当前字符串中遇到的所有和字符串regex相一致的子串,并将产生的新字符串返回。 思考:如何判断一个字符串是否是一个合法的email地址?,JSP页面与JSP标记, 例2-2 P13 example2_2.jsp,JSP页面与JSP标记,2.声明方法 “” 该方法在整个JSP页面有效,与位置无关。 方法内定义的变量只在该方法内有效。 方法被调用时,方法内定义的变量被分配内存,调用完毕即可释放所占内存。

7、例2-3 P14 example2_3.jsp 声明必须以;结尾,JSP页面与JSP标记,2.3 Java程序片,在“”之间插入Java程序片。 一个页面可以有许多JAVA程序片,JSP引擎按顺序执行。 程序片中声明的变量称为JSP页面的局部变量。有效范围与其声明的位置有关, 即局部变量在JSP页面后继的JAVA程序片和JAVA表达式部分内有效。,JSP页面与JSP标记,多个客户请求一个JSP页面时 , Java程序片将被执行多次,分别在不同的线程中执行 。,JSP页面与JSP标记,1、JSP页面的成员变量 各线程共享的变量 2、调用JSP页面的方法 必须是JSP页面的方法(在”间声明的方法)

8、 3、声明操作局部变量 运行在不同线程中的JAVA程序片的局部变量互不干扰。当一线程将JAVA程序片执行完毕,释放所占的内存,JSP页面与JSP标记,如一用户在执行JAVA程序片时调用JSP页面的方法操作成员变量时,可能不希望其他用户也调用该方法操作成员变量,则应将操作成员的方法用synchronized关键字修饰 例2-4 P15 example2_4.txt,JSP页面与JSP标记,2.4 表达式,“”之间可是Java表达式,不可插入语句。 “%=”不要有空格 JSP的表达式中没有分号,除非在加引号的字符串部分才使用分号。 表达式的值由服务器负责计算,并将计算结果用字符串形式发送到客户端显

9、示。 例2-6 P17 example2_6.jsp,JSP页面与JSP标记,2.5 JSP中的注释,1. HTML注释格式: 注释的内容会在客户端的HTML源代码中出现。 例如: 2. JSP注释格式: 客户端查看源代码时看不到(安全考虑)。 例2-7 P18example2_7.jsp 注:程序片中的注释 /,JSP页面与JSP标记,2.6 JSP 指令标记,2.6.1 page 指令,page 指令用来定义整个JSP页面的一些属性和这些属性的值。 这样页面就可以显示标准汉语 page指令的作用对整个JSP页面有效,与其书写的位置无关,习惯把page指令写在JSP页面的最前面。 属性值用单

10、引号或双引号括起来。可以用一个page指令指定多个属性的值 ,也可以使用多个page指令分别为每个属性指定值 .,JSP页面与JSP标记,格式: 或 page 指令标记可以指定如下属性的值contentType、import、language、session、buffer、auotFlush 、isThreadSafe、pageEncoding。,JSP页面与JSP标记,“Page”指令用于定义JSP文件中的全局属性。 % page language=java import=package.class | package.*,. session=true | false buffer=none

11、 | 8kb | sizekb contentType= charset=characterSet| text/html ; charset=ISO-8859-1 isErrorPage=true | false ,JSP页面与JSP标记, 哈尔滨师范大学 ,JSP页面与JSP标记,如果为一个属性指定几个值话,这些值用逗号分割。page 指令只能给import 属性指定多个值;其它属性只能指定一个值。 例如: 注:下列用法是错误的 尽管指定的属性值相同,也不允许2 次使用Page 给contentType 属性指定属性值,,JSP页面与JSP标记,2.6.1 page 指令_language属

12、性,定义JSP页面使用的脚本语言,该属性的值目前只能取java。 格式: 注:JSP页面默认有如上page指令 。,JSP页面与JSP标记,2.6.1 page 指令_ import 属性,该属性的作用是为JSP页面引入Java运行环境提供的包中的类,这样就可以在JSP页面的程序片部分、变量及函数声明部分、表达式部分使用包中的类。 例如: 注:JSP页面默认import属性已经有“java.lang.*”、“javax.servlet.*” 、javax.servlet.jsp.*、javax.servlet.http.*等值 。 可为该属性指定多个值,可以是Java 某包中的所有类或一个具体

13、的类,JSP页面与JSP标记,2.6.1 page 指令_contentType属性,contentType 属性值确定JSP页面响应的MIME(Multipurpose Internet Mail Extention)类型和JSP页面字符的编码。 属性值的一般形式是: “MIME 类型”或“MIME 类型;charset=编码” 默认值是text/html ; charset=ISO-8859-1。 例如: 注:不允许两次使用page 指令给contentType属性指定不同的属性值 . 例2-8 P21first.txt second.txt,JSP页面与JSP标记,2.6.1 page

14、指令_ session属性,用于设置是否需要使用内置的session对象。session的属性值可以是true或false。session属性默认的属性值是true。 参考:P84 4.3 详细讲解,JSP页面与JSP标记,2.6.1 page 指令_ buffer属性,内置输出流对象out负责将服务器的某些信息或运行结果发送到客户端显示,buffer属性用来指定out设置的缓冲区的大小或不使用缓冲区。 例如: buffer属性的默认值是8kb 。 buffer属性可以取值“none”,设置out不使用缓冲区。 参考:P96 4.4 详细讲解out对象,JSP页面与JSP标记,特别说明:页面缓

15、存,缓存是一种用于提高系统性能节省操作时间的技术,数据库产品利用它可以提高系统的吞吐率,服务器利用它可以提高性能。缓存是将响应内容临时保存在服务器的内存中,然后在请求处理完毕之后发回给所调用的浏览器。在Web应用程序中,提高系统性能最有效的手段是在需要时缓存页面的输出。 在JSP页面最好使用输出缓存功能。缓存设置方法: 采用JSP标记 通常情况下,默认缓存大小为8KB。缓存设置格式: 在大多数Web应用程序中,缓存大小至少应为32kb,牺牲这么一点额外的内存是很值得的。,JSP页面与JSP标记,2.6.1 page 指令_ autoFlush属性,autoFlush属性: 指定out的缓冲区被

16、填满时,缓冲区是否自动刷新。 注: autoFlush属性的默认值是true。 当auotFlush 属性取值false时,如果out的缓冲区填满时,就会出现缓存溢出异常。 当buffer 的值是“none”时,auotFlush的值就不能设置成false。,JSP页面与JSP标记,2.6.1 page 指令_isThreadSafe属性,isThreadSafe属性: 用来设置JSP页面是否可多线程访问。 注: isThreadSafe属性的默认值是true,JSP页面能同时响应多个客户的请求; 当isThreadSafe 属性值设置成false 时,JSP 页面同一 时刻只能处理响应一个客

17、户的请求,其他客户需排队等待。 computer1.jsp,JSP页面与JSP标记,2.6.1 page 指令_info属性,info属性的属性值是一个字符串,其目的是为JSP页面准备一个常用且可能需要经常修改的字符串。 例如: 注:可以在JSP页面中使用方法: getServletInfo(); 获取info属性的属性值。 Example2_13.jsp,JSP页面与JSP标记,2.6.2 include 指令标记,include指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件。 格式: 注:被插入的文件必须是可访问和可使用的, 如果该文件和当前JSP页面在同一Web服务目录

18、中,那么“文件的URL”就是文件的名字; 如果该文件在JSP页面所在的Web服务目录的一个子目录中,比如fileDir子目录中,那么“文件的URL”就是“fileDir/文件的名字”。 注:静态插入,就是当前JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。 例2-9,2-10 P24,JSP页面与JSP标记,注:插入文件后,必须保证新合并成的JSP 页面符合JSP 语法规则,即能够成为一个JSP 页面文件。 如:如果一个JSP 页面使用include 指令插入另一个JSP 文件,被插入的这个JSP 页面中有一个设置页面 contentTy

19、pe属性的page 指令: 而当前JSP 页面已经使用page 指令设置了ontentType的属性值,那么新合并的JSP 页面就出现了语法错误,当转译合并的JSP 页面到Java 文件时就会失败。 注:在Example2_14.jsp 被转译成Java 文件后,如果你对插入的文件Hello.txt 进行了修改,那么必须要重新将Example2_14.jsp 转译成java 文件(重新保存页面,然后 再访问该页面即可),否则只能看到修改前的Hello.txt 的内容。 Example2_14.jsp Example2_15.jsp,JSP页面与JSP标记,示例: 哈尔滨师范大学 ,JSP页面与

20、JSP标记,2.7 JSP 动作标记,2.7.1 include 动作标记,语法格式: 或 param子标记 include动作标记告诉JSP页面动态加载一个文件。 注: include 动作标记是在JSP页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前JSP页面。 “jsp”、“:”、“include”三者之间不要有空格。 例2-11 P27Example2_16.jsp,JSP页面与JSP标记,思考:何时使用,何时使用? 注:include 动作标签与静态插入文件的include 指令标签有很大的不同,动作标签 是在执行时才对包含的文件进行处理,因此JSP 页面和它所包含的文件在

21、逻辑和语法上是独立的;如果你对包含的文件进行了修改,那么运行时看到所包含文件修改后的结果,而静态include 指令包含的文件如果发生了变化,我们必须要重新将JSP页面转译成java文件(可将该JSP 页面重新保存,然后再访问,就可产生新的转译Java 文件),否则只能看到所包含的修改前的文件内容。,JSP页面与JSP标记,2.7.2 param动作标记,param标记以“名字-值”的形式为其它标记提供附加信息. 语法格式: 注: param标记不能独立使用,需作为jsp:include、jsp:forward、jsp:plugin标记的子标记来使用。 注:当该标记与jsp:include动作标记一起使用时,可以将param标记中的值传递到include动作标记要加载的文件中去,被加载的JSP文件可以使用Tomcat服务器提供的request内置对象获取include动作标记的param子标记中name属性所提供的值 例2-12 P28Example2_18.jsp,JSP页

温馨提示

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

评论

0/150

提交评论