JavaWeb基础加强.ppt
《JavaWeb基础加强.ppt》由会员分享,可在线阅读,更多相关《JavaWeb基础加强.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、高级软件人才实作培训专家高级软件人才实作培训专家!北京传智播客教育JavaJava基础加强基础加强方立勋方立勋高级软件人才实作培训专家高级软件人才实作培训专家!JavaEE就业班课程介绍l什么是WEB开发、WEB开发能干什么lWEB涉及到的相关技术lWEB开发学习需要注意的问题lWEB开发、Android开发的市场行情高级软件人才实作培训专家高级软件人才实作培训专家!什么是WEB开发、WEB开发前景lWeb开发简单的说,就是开发供浏览器访问的程序。换句话说,web开发就是教大家怎么做网站。高级软件人才实作培训专家高级软件人才实作培训专家!WEB涉及到的相关技术IEWEB服务器服务器Servic
2、eDAODBHTTP请求请求ControllerPagesBeansHTTP响应响应Http协议Tomcat服务器Servlet技术Jsp技术HtmlCssJavaScriptJDBC技术MySQL、OracleSQL语言JavaBeanXML技术AjaxStruts1Struts2SpringMVCDbUtilsHibernateSpring技术JBPMOA技术EJB技术.常用开源组件:Dom4j、C3po、Dbcp、log4j、Velocity、OsCache.Java语言语言高级软件人才实作培训专家高级软件人才实作培训专家!WEB学习需要注意的问题l一天一门技术,知识量太大,根本消化不过
3、来,学后面的忘了前面的。一天一门技术,知识量太大,根本消化不过来,学后面的忘了前面的。技术是用来做东西的,做东西时能想得起来有这么一门技术能够解决这个问题,能够快速捡起来就行了。l上课都听得明白,下课自己就是写不出来,没思路、一写就报错。上课都听得明白,下课自己就是写不出来,没思路、一写就报错。高级软件人才实作培训专家高级软件人才实作培训专家!Eclipse的使用l工作空间(workspace)、工程(project)l在eclipse下Java程序的编写和运行,及java运行环境的配置。l快捷键的配置,常用快捷键:内容提示:Alt+/快速修复:Ctrl+1导包:Ctrl+shift+O格式化
4、代码块:ctrl+shift+F向前向后:Alt+方向键添加注释Ctrl+Shift+/除去注释Ctrl+Shift+l程序的调试和运行F5(跳入)F6(跳过)F7(跳出)lJunit高级软件人才实作培训专家高级软件人才实作培训专家!JDK 5.0 新特性lJDK5中新增了很多新的java特性,利用这些新语法可以帮助开发人员编写出更加高效、清晰,安全的代码。静态导入自动装箱/拆箱增强for循环可变参数枚举泛型元数据高级软件人才实作培训专家高级软件人才实作培训专家!静态导入静态导入l静态导入用于简化程序对类静态属性和方法的调用。l语法:Import static包名.类名.静态属性|静态方法|*
5、l例如:importstaticjava.lang.System.outimportstaticjava.lang.Math.*高级软件人才实作培训专家高级软件人才实作培训专家!Jdk5自动装箱自动装箱/拆箱拆箱l自动装箱:指开发人员可以把一个基本数据类型直接赋给对应的包装类。l自动拆箱:指开发人员可以把一个包装类对象直接赋给对应的基本数据类型。l典型应用:Listlist=newArrayList();list.add(1);intj=(Integer)list.get(0);高级软件人才实作培训专家高级软件人才实作培训专家!增强for循环l引入增强for循环的原因:在JDK5以前的版本中,
6、遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!lJDK5中定义了一种新的语法增强for循环,以简化此类操作。增强for循环只能用在数组数组、或实现实现Iterable接口接口的集合类上。l语法格式:for(变量类型变量:需迭代的数组或集合)高级软件人才实作培训专家高级软件人才实作培训专家!增强for循环l使用增强for循环的几个注意事项(以下程序的输出结果?)intarr=newint5;for(intnum:arr)num=1;System.out.println(arr0);Listlist=newArrayList();list.add(xxx);for(Strin
7、gstr:list)str=yyy;System.out.println(list.get(0);高级软件人才实作培训专家高级软件人才实作培训专家!可变参数l测试JDK中具有可变参数的类Arrays.asList()方法。分别传多个参、传数组,传数组又传参的情况。注意:传入基本数据类型数组的问题。l从JDK5开始,Java允许为方法定义长度可变的参数。语法:publicvoidfoo(intargs)l注意事项:调用可变参数的方法时,编译器将自动创建一个数组保存传递给方法的可变参数,因此,程序员可以在方法体中以数组的形式访问可变参数可变参数只能处于参数列表的最后,所以一个方法最多只能有一个长度
8、可变的参数高级软件人才实作培训专家高级软件人才实作培训专家!枚举类l为什么需要枚举?一些方法在运行时,它需要的数据不能是任意的,而必须是一定范围内的值,此类问题在JDK5以前采用自定义带有枚举功能的类解决,Java5以后可以直接使用枚举予以解决。lJDK5新增的enum关键字用于定义一个枚举类。高级软件人才实作培训专家高级软件人才实作培训专家!枚举类l枚举类具有如下特性:枚举类也是一种特殊形式的Java类。枚举类中声明的每一个枚举值代表枚举类的一个实例对象。与java中的普通类一样,在声明枚举类时,也可以声明属性、方法和构造函数,但枚举类的构造函数必须为私有的(这点不难理解)。枚举类也可以实现
9、接口、或继承抽象类。JDK5中扩展了swith语句,它除了可以接收int,byte,char,short外,还可以接收一个枚举类型。若枚举类只有一个枚举值,则可以当作单态设计模式使用。高级软件人才实作培训专家高级软件人才实作培训专家!枚举类lJava中声明的枚举类,均是java.lang.Enum类的孩子,它继承了Enum类的所有方法。常用方法:name()ordinal()valueof(ClassenumClass,Stringname)values()此方法虽然在JDK文档中查找不到,但每个枚举类都具有该方法,它遍历枚举类的所有枚举值非常方便。l练习:请编写一个关于星期几的枚举WeekD
10、ay,要求:枚举值:MON,TUE,WED,THU,FRI,SAT,SUN该枚举要有一个方法,调用该方法返回中文格式的星期。高级软件人才实作培训专家高级软件人才实作培训专家!反射反射l一个类有多个组成部分,例如:成员变量,方法,构造方法等。反射就是加载类加载类,并解剖出类的各解剖出类的各个组成部分个组成部分。l编程时什么情况下才需要加载类,并解剖出类的各个组成部分呢?高级软件人才实作培训专家高级软件人才实作培训专家!加载类加载类lJava中有一个Class类用于代表某一个类的字节码。lClass类即然代表某个类的字节码,它当然就要提供加载某个类字节码的方法:forName()。forName方
11、法用于加载某个类的字节码到内存中,并使用class对象进行封装l另外两种得到class对象的方式类名.class对象.getClass()高级软件人才实作培训专家高级软件人才实作培训专家!解剖类解剖类lClass对象提供了如下常用方法:对象提供了如下常用方法:PublicConstructorgetConstructor(Class.parameterTypes)PublicMethodgetMethod(Stringname,Class.parameterTypes)PublicFieldgetField(Stringname)publicpublicConstructorgetDeclar
12、edConstructor(Class.parameterTypes)publicMethodgetDeclaredMethod(Stringname,Class.parameterTypes)publicFieldgetDeclaredField(Stringname)l这些方法分别用于从类中解剖出构造函数、方法和成员变量(属性)这些方法分别用于从类中解剖出构造函数、方法和成员变量(属性)。解剖出的成员分别使用。解剖出的成员分别使用Constructor、Method、Field 对象表对象表示。示。l思考:假设你是一个框架的设计者,解剖出这些成员后你会干什么思考:假设你是一个框架的设计者,
13、解剖出这些成员后你会干什么?高级软件人才实作培训专家高级软件人才实作培训专家!利用利用Constructor创建对象创建对象lConstructor类提供了如下方法,用于创建类的对象:类提供了如下方法,用于创建类的对象:publicObjectnewInstance(Object.initargs)initargs用于指定构造函数接收的参数l练习:反射类无参、有参、私有的构造函数,创建类的对象。练习:反射类无参、有参、私有的构造函数,创建类的对象。l多学一招:多学一招:sun公司为简化开发人员创建对象,它在公司为简化开发人员创建对象,它在class对象中也提对象中也提供了一个供了一个newIn
14、stance方法,用于创建类的对象。这样开发人员可以方法,用于创建类的对象。这样开发人员可以避免每次都需要去反射避免每次都需要去反射Constructor 类以创建对象。类以创建对象。不过需要注意的是:不过需要注意的是:class.newInstance方法内部是反射类无参方法内部是反射类无参的构造函数创建的对象,所以利用此种方式创建类对象时,类必的构造函数创建的对象,所以利用此种方式创建类对象时,类必须有一个无参的构造函数。须有一个无参的构造函数。高级软件人才实作培训专家高级软件人才实作培训专家!利用利用Method执行方法执行方法lMethod对象提供了如下方法,用于执行它所代表的方对象提
15、供了如下方法,用于执行它所代表的方法:法:publicObjectinvoke(Objectobj,Object.args)l练习:使用Method分别执行无参、有参、多个参(带数组和基本数据类型)、静态、私有的方法。ljdk1.4和jdk1.5的invoke方法的区别:Jdk1.5:publicObjectinvoke(Objectobj,Object.args)Jdk1.4:publicObjectinvoke(Objectobj,Objectargs),高级软件人才实作培训专家高级软件人才实作培训专家!练习:利用练习:利用Method执行执行main方法方法l问题:问题:启动Java程序
16、的main方法的参数是一个字符串数组,即publicstaticvoidmain(Stringargs),通过反射方式来调用这个main方法时,如何为invoke方法传递参数呢?按jdk1.5的语法,整个数组是一个参数,而按jdk1.4的语法,数组中的每个元素对应一个参数,当把一个字符串数组作为参数传递给invoke方法时,javac会到底按照哪种语法进行处理呢?jdk1.5肯定要兼容jdk1.4的语法,会按jdk1.4的语法进行处理,即把数组打散成为若干个单独的参数。所以,在给main方法传递参数时,不能使用代码mainMethod.invoke(null,newString“xxx”),j
17、avac只把它当作jdk1.4的语法进行理解,而不把它当作jdk1.5的语法解释,因此会出现参数类型不对的问题。l解决办法:解决办法:mainMethod.invoke(null,newObjectnewStringxxx);mainMethod.invoke(null,(Object)newStringxxx);,编译器会作特殊处理,编译时不把参数当作数组看待,也就不会数组打散成若干个参数了高级软件人才实作培训专家高级软件人才实作培训专家!利用利用Field访问属性访问属性lField对象提供了如下方法,用于设置、获取对对象提供了如下方法,用于设置、获取对象属性的值:象属性的值:public
18、 void set(Object obj,Object value)public Object get(Object obj)l练习:利用Field分别设置和获取公有、私有的属性。高级软件人才实作培训专家高级软件人才实作培训专家!内省(Introspector)l为什么要学内省?开发框架时,经常需要使用java对象的属性来封装程序的数据,每次都使用反射技术完成此类操作过于麻烦,所以sun公司开发了一套API,专门用于操作java对象的属性。l什么是Java对象的属性和属性的读写方法?l内省访问JavaBean属性的两种方式:通过PropertyDescriptor类操作Bean的属性通过Int
19、rospector类获得Bean对象的BeanInfo,然后通过BeanInfo来获取属性的描述器(PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后通过反射机制来调用这些方法。高级软件人才实作培训专家高级软件人才实作培训专家!内省beanutils工具包 lSun公司的内省API过于繁琐,所以Apache组织结合很多实际开发中的应用场景开发了一套简单、易用的API操作Bean的属性BeanUtilslBeanutils工具包的常用类:BeanUtilsPropertyUtilsConvertUtils.regsiter(Co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JavaWeb 基础 加强
限制150内