第四章 JSP语法.ppt

上传人:figureissue185 文档编号:374189 上传时间:2018-10-05 格式:PPT 页数:46 大小:740.50KB
下载 相关 举报
第四章 JSP语法.ppt_第1页
第1页 / 共46页
第四章 JSP语法.ppt_第2页
第2页 / 共46页
第四章 JSP语法.ppt_第3页
第3页 / 共46页
第四章 JSP语法.ppt_第4页
第4页 / 共46页
第四章 JSP语法.ppt_第5页
第5页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第四章 JSP语法,西南科技大学网络教育系列课程 动态网页设计(JSP),Jsp基本结构,直观地看, Jsp程序是在HTML页面中插入Java程序。,HTML标记符 HTML网页制作 声明:变量、方法、类 Java 程序片 Java 表达式 Jsp标签分为指令标签、动作标签 注释,示例分析,.其他 HTML 语言其他 HTML 语言,Jsp基本结构,Jsp程序实例,Jsp基本结构,Jsp程序实例,JSP示例(Hello.jsp),你好,你好你好,JSP示例(Hello_Date.jsp),你好,今天是号,星期,import java.util.*;response.setContentType

2、(“text/html;charset=gb2312“); out = pageContext.getOut(); out.write(“rnrnrn rn你好,今天是rn“); Date today=new Date(); out.print(today.getDate(); out.write(“号,星期“); out.print(today.getDay(); out.write(“ rn rnrn “);,JSP文件,servlet文件,数据类型,数据类型概述,Java程序语言是一种强类型化(strongly typed)语言。每一个变量(variable)和表达式(expressio

3、n)都有一种在编译时期所认知的类型。 Java程序语言的类型分作两大类: 原生类(primitive type)基本类型(简单数据类型) 布尔(boolean)类型 数字(numeric)类型 参考类(referance type) (复合数据类型) 类(class)类型、接口类型(interface) 数组(array)类型。 null 空类型,数据类型,标示符,标识符是指程序中所用的符号名称,像包、类、字段、方法、参数、变量等都是。 标识符的命名法则为: 第一个字符必须是字母、钱币符号(¥、等)或底线(_),其后可跟着任意数目的字母、钱币符号、底线或数字。 数字不可用于开头。 除了钱币符号

4、及底线外,其余标点符号均不可使用标识符不可以是关键字(keywords)或实字 (literals)。 标识符一般应该能达到有望文生义的效果。类名接口名首字母大写,变量名方法名首字母小写。 大小写敏感,以下为合法的标识符: A98_23 _abc ¥ Usdollars以下为非法的标识符 : A- 4 3_1 the Boolean true null,数据类型,标示符,关键字又称为保留字(reserved words),是保留给Java编译器识别用的 。 Java的关键字如下 : abstract default private this boolean break implements p

5、rotected throw double import public throws byte else case catch int short try static instanceof return transien extends interface void char finally long strictfp volatile class float native super while for new switch continue package synchronized if final do,数据类型,数据类型,布尔 (true ,false) 字符 字符实字是由英文字母、

6、数字、特殊字符等的字符所表示,其值就是字符本身。表示法乃用两个单引号将字符包起来(字符) 。 如:A cb /表退格键 /表单引号字符n /表换行字符 r t f nullnull实字只有一个值,就是空引用,由实字null表示 。,数据类型,Java允许数据类型间的转换(type conversion),但在下列限制之下 : 原生类与参考类彼此间不能转换。只限原生类间的转换,或参考类间的转换 。 原生类中的布尔类型也与数字类型不能互相转换。 转换的方法为:(数据类型)表达式 如:byte b 34;int i b;int i = 300; byte b = (byte)i;,装换方式,可以由低

7、到高: byte-short-char-int-long-float-double,数据类型,变量是存储数据的基本单元,在强类型语言中变量在使用之前必须说明 格式:类型 变量名1=初值,变量名2=初值; int x,y; /说明整型变量x,y float z = 3.1415f; /说明浮点型变量并赋值 double w = 3.1415d; /说明双精度型变量并赋值 foolean flag; /说明布尔型变量 char c; /说明字符型变量 c = a; /给字符型变量赋值 x = 6; /给整型变量x赋值 y = 1000; /给整型变量y赋值 flag = 6 7; /给布尔型变量赋

8、值(表达式的返回值),数据类型,简单类型的包装类 在Java中,可以直接把简单类型的变量表示为一个类的对象。对应简单数据类型共有6个包装类,分别是Boolean、Character 、Integer 、 Long、 Float、 Double 有了包装类,可以用它们的构造函数来进行赋值操作: Boolean(boolean) Character(char) Integer(int) Boolean bTest=true; Boolean objTest =new Boolean(bTest); 获取包装类的值,用形如*Value()方法,如Boolean类则为 booleanValue,数组,

9、一维数组(1) 一维数组的定义一维数组的定义方式为:type arrayName ; 其中类型(type)可以为Java中任意的数据类型,包括简单类型和组合类型,数组名arrayName为一个合法的标识符, 指明该变量是一个数组类型变量。例如: int intArray ;声明了一个整型数组,数组中的每个元素为整型数据。,我们还可以定义一个复合类型的数组,例如:Date dateArray ; 声明了一个容纳复合数据类型Date的数组。与C、C+不同,Java在数组的定义中并不为数组元素分配内存,因此 中不用指出数组中元素的个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何元素的。

10、必须经过初始化后,才能应用数组的元素。,数组,除了这种定义数组的方式之外,java语言还提供了其他的定义形式,如下所示: type arrayName;对于以上举出的例子,我们也可以这样定义: int intArray;Date dateArray;,数组,(2) 一维数组的初始化一维数组定义之后,必须经过初始化才可以引用。数组的初始化分为静态初始化和动态初始化两种:静态初始化:在定义数组的同时对数组元素进行初始化,例如:int intArray =1,2,3,4;/定义了一个含有4个 / 元素的int型数组。,数组,动态初始化:使用运算符new为数组分配空间,对于简 单类型的数组,其格式如下

11、:type arrayName =new typearraySize;type arrayName=new typearraySize; 对于复合类型的数组,需要经过两步空间分配。首先: type arrayName =new typearraySize;然后:arrayName0=new type(paramList);arrayNamearraySize-1=new type(paramList);,数组,例如: String stringArrar; /定义一个String类型的数组 stringArray = new String3; /给数组stringArray分配3个应用/空间,

12、初始化每个引用值为null stringArray0=new String(“how”); stringArray1=new String(“are”); stringArray2=new String(“you”);,初始化各数组元素,数组,(3) 一维数组的引用当定义了一个数组,并用运算符new为它分配了内存空间后,就可以引用数组中的每一个元素了。元素的引用方式为: arrayNameindexindex为数组下标,可以是整型常数或表达式,如:arrayName1, arrayNamei, arrayName6*i等。下标是0序的,即从0开始,一直到数组长度减1。,数组,另外,与C、C+中

13、不同,Java对数组元素要进行越界检查以保证安全性。同时,对于每个数组都有一个属性length指明它的长度,例如:intArray.length指明数组intArray的长度。,数组,public class ArrayTest public static void main( String args )int i;int a = new int5;for(i=0; i=0; i- )System.out.println(“a“+i+“ = “+ai); ,该程序对数组中的每个元素赋值,然后按逆序输出。,数组,运行结果为: C:java ArrayTest a4 = 4 a3 = 3 a2 =

14、 2 a1 = 1 a0 = 0,数组,多维数组在任何语言中,多维数组都被看作数组的数组。比如二维数组是一个特殊的一维数组,其每一个元素又是一个一维数组。我们主要以二维数组为例来说明,高维数组与此类似。,数组,(1) 二维数组的定义方式type arrayName; 例如:int intArray; 也可以采用另一种定义方式:type arrayName; 与一维数组一样,这时对数组元素也没有分配内存空间,同样要使用运算符new来分配内存,然后才可以访问每个元素。,数组,(2) 二维数组的初始化二维数组的初始化也分为静态和动态两种。静态初始化:在定义数组的同时为数组分配空间。int intAr

15、ray =1,2,2,3,3,4;不必指出数组每一维的大小,系统会根据初始化时给出的初始值的个数自动算出数组每一维的大小。,数组,动态初始化:对高维数组来说,分配内存空间有下面两种方法:1.直接为每一维分配空间,如:type arrayName =new typearraylength1arraylength2例如:int a =new int23;,数组,2.从最高维开始(而且必须从最高维开始),分别为每一维分配空间,如:String s =new String2 ;s0=new String2;s1=new String2;s00=new String(“Good”);s01=new St

16、ring(“Luck”);s10=new String(“to”);s11=new String(“you”);,数组,(3) 二维数组的引用对二维数组中每个元素,引用方式为: arrayNameindex1index2其中index1和index2为数组下标,为整型常数和表达式,都是0序的。,数组,类是的一种重要的复合数据类型,是组成Java程序的基本要素,也是面向对象的程序设计的基本单位。,类,类定义了某类对象的共有变量和方法。变量是现实对象的属性或状态的数字化表示,方法是对现实对象进行的某种操作或其对外表现的某种行为。,对象是由一组相关的变量和方法共同组成的一个具体的软件体。,类实例化就

17、成为对象。对象和类之间的关系就如同房子和其设计图纸的关系。类的作用就象一个模板,所有对象实例依照它来创建。,类,类,publicabstract | final class ClassName extends superClassName implements interfaceNameList .class body (类体).,类声明,类成员,类体是一个类的功能部分,由变量和方法两部分组成,两者通称为类成员。类体的格式如下:,类,class className/成员变量public | protected | private static final transient volatile

18、type variableName;,类成员,/成员方法public | protected | private staticfinal | abstract native synchronizedreturnType methodName (paramList) throws exceptionListstatements,类,构造函数,1.构建器(constructor)是提供对象初始化的专用方法。它和类的名字相同,但没有任何返回类型,甚至不能为void类型。,类,2.构建器在对象创建时被自动地调用,它不能被显式调用。,3.如果在定义Java类时没有创建任何构建器,Java编译器自动添加一

19、个默认的构建器。,构造函数,6.类的所有实例都分配在可作无用单元回收的堆中。声明一个对象引用并不会为该对象分配存储,程序员必须显式地为对象分配存储,但不必显式删除存储,因为无用单元回收器会自动回收无用的内存。,类,4.构建器只能由new运算符调用。new运算符,除了分配存储之外,还初始化实例变量,调用实例的构建器。,5.类是用来定义对象状态和行为的模板,对象是类的实例。,方法重载,1.方法重载(overload)是指多个方法具有相同的名字,但是这些方法的参数必须不同(或者是参数的个数不同,或者是参数类型不同)。,类,2.方法在同一个类的内部重载,类中方法声明的顺序并不重要。,3.返回类型不能用

20、来区分重载的方法。方法重载时,参数类型的区分度一定要足够,例如不能是同一类型的参数。重载的认定是指要决定调用的是哪一个方法,在认定重载的方法时,不考虑返回类型。,方法重载,类,4.方法重载时,编译器会根据参数的个数和类型来决定当前所使用的方法,5.通过参数个数来区分方法重载,比较容易分辨;而通过参数类型来区分方法重载,要格外小心,避免出现“二义性”。,类继承,1.在构造一个新的类时,首先找到一个已有的类,新类在这个已有类的基础上构造,这种特性我们称之为继承,也可以称作派生(derived)。继承使用关键字extends声明。继承出的类称为原来类的子类,而原来类被称为父类或者超类。,类,2.类的

21、继承具有传递性:如果B是A的子类,C是B的子类,则C是A的子类。,3.关键字extends只能引出一个超类superClassName,即Java语言仅支持单继承(single inheritance)。,关键字this,1.this用在方法中,表示引用当前对象。,类,2.在一个方法内部如果局部变量与类变量的名字相同,则局部变量隐藏类变量,在这种情况下如果要访问类变量,必须使用this。,public void setMoney(int money)this.money=money; ,关键字this,类,3.在类的构建器和非静态方法内,this代表当前对象的引用。利用关键字this,可以在构建器和非静态方法内,引用当前对象的任何成员。,4.一个方法引用它自己的实例变量及其他实例方法时,在每个引用的前面都隐含着“this”。,抽象类,抽象类用abstract关键字来修饰一个类时,该类叫做抽象类; 抽象类不定义完成的方法实现抽象类必须被继承,抽象方法必须被重写。抽象类不能被直接实例化。因此它一般作为其它类的超类abstract returnType abstractMethod( paramlist );,类,抽象类,类,Object类,所有其他类的超类,其他类都是它的子类可以通过Object类型的变量引用任何一个其他类型的对象,类,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1