Java程序员学习Flex和BlazeDS的十三个理由

时间:2019-05-12 18:53:40下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《Java程序员学习Flex和BlazeDS的十三个理由》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《Java程序员学习Flex和BlazeDS的十三个理由》。

第一篇:Java程序员学习Flex和BlazeDS的十三个理由

Java程序员学习Flex和BlazeDS的十三个理由

阅读次数: 335次 发布时间: 2009-05-20 15:24:33发布人: 沙晓兰

来源: infoq

本文列述了13个Java程序员应当学习Flex和BlazeDS的理由,讨论了为什么Flex结合BlazeDS是开发RIA的最佳组合之一。无论是高度交互的网站还是以Java为后端的企业应用,这项组合都是最佳选择之一。更重要的是,这项组合能同时为开发员和企业带来高回报(ROI)。

在阐述Java程序员应当学习BlazeDS的13条理由时,我以一个假想的苏打分派系统来展示如何让已有的Java程序转变为RIA应用。通过这个例子,我同时还会讲解到BlazeDS在已有Java应用或新建Java应用中的多种不同用法。

理由一:开源

Flex软件开发工具箱(SDK)的核心是个开源框架,专门用来开发、维护那些在不同浏览器、不同操作系统下界面都相同的RIA应用。Flex发布采用的是Mozilla公共许可证(Mozilla Public License)。编译后的Flex应用在Adobe Flash平台下运行。

BlazeDS是连接Flex和Java的索桥,是项针对远程调用和消息传递的开源技术。在Java应用服务器上,它以servlet的形式存在,因此可以在任何标准Java网络应用中运用它。BlazeDS以LGPL(Lesser GNU Public License)公共许可证书发布。在发布BlazeDS的同时,Adobe还公布了AMF(ActionScript Message Format)规格说明,BlazeDS、Java和Flex客户端间以这种简洁的二进制格式实现通信。理由二:完善的社区支持

Flex社区非常活跃,社区贡献了大量项目。Flex.org,这个配以社区新闻的Adobe站点几乎每天都有新的社区贡献;Yahoo!上的Flex用户组的成员也已经超过了11000。

再比如Google Code上的Flexlib项目,已经提交了大量的开源UI组件。Swiz和Mate项目贡献了优化事件处理的框架;还有Gorilla Logic贡献了自动化UI测试的Flex Monkeym项目。理由三:带来广阔的就业前景

据Adobe的Flex“传道士”——James Ward看来,Flex高级开发员的市场需求非常大,学习Flex能让你拥有极具市场竞争力的开发技能。

理由四:更高的业务效益回报

总体上,开发企业web应用不是个轻松的活,这基本上是众所周知的事实。Flex和BlazeDS提供的不仅仅是功能强大的开发工具,而且开发技术本身相对也非常简单。开发效率可以得到大幅度的提升,产品因此可以很快推向市场。Flex和Flash带来的用户体验也相对更有魅力,对增加流量、提高用户转化率(conversion rate)很有帮助。

很经典的一个例子是Borders连锁书店。他们最近发布了带有“魔法书架”的新网站,这个网站采用Flash接口来模拟书籍借阅的过程。Borders 发现这一模拟借阅非常明显地提到了用户转换率:“借助这个Flash驱动的接口,用户可以浏览书籍、DVD和CD的封面,用户转换率比其他没有此项功能的网站高出62%”。

理由五:Flex是第一个专门为创建UI而设计的语言

大部分语言都不是在第一时间设计其对UI的支持。Java中Swing包的实现刚好是个很好的证明。也就是这个原因,很多像捆绑数据这样的简单动作在Swing当中的实现就非常痛苦。用 Swing最大的问题在于,要想提高开发效率就必须要对其API了如指掌。

Flex刚好相反,它是专门为创建web UI而设计的。正如Bruce Eckel所说,Flex是第一个针对UI开发的领域特定语言(DSL)。用Flex构建UI比其它诸如JSP、JSF、Swing等技术简便得多。语言本身糅合了数据绑定、事件处理、控件布局以及其它一些UI常用开发技巧,就算对语言没有深刻的理解也不会影响开发效率。

理由六:编程风格近似于Java

你可以继续使用现有的Java开发工具来开发Flex应用。当然也可以采用SDK中携带的免费命令行工具,Adobe Flex Builder(一个Eclipse插件),或最近的IntelliJ IDEA 8。

Flex提供的是一个有状态环境,在这个环境中,数据从客户端加载。这种编程模式更像是开发桌面客户端而非HTML编程,这种风格对于用过Java Swing编程的开发员来说应该是相当熟悉。

Flex是MXML(类似XML的UI标记语言)和Adobe ActionScript(面向对象的解析语言)的结合体。鉴于这种结合方式,Flex编程与Java非常相似,因为两者用的都是熟知的面向对象的概念。

最理想的开发环境是把Flex应用创建在web部署文件夹下。这样一来,每次更新应用之后都不需要重新部署,只要在浏览器下刷新一下就可以了。用Flex和BlazeDS开发后,开发效率绝对比之前有很大的提升。

理由七:BlazeDS可以在任何Java应用服务器上运行

BlazeDS目前已发布了多个版本,其中的turnkey版本还包含了为BlazeDS配置的Apache Tomcat。本文中,我用的是二进制发布版本,其中含有一个WAR用来展示如何把应用部署到各种应用服务器上去。不用这个WAR的话,你也可以从中提取 JAR文件放到自己的项目中去。关于安装BlazeDS的各种选项内容,可以参见BlazeDS的wiki。

这里举一个简单的例子,比方说要在已有的一个简单的苏打调配系统中应用BlazeDS。你只要把JAR文件放到项目文件夹下,然后就可以在应用里直接用BlazeDS,可以部署到能够部署应用的任何地方。

在项目中添加BlazeDS,只需要完成下面两个步骤:

解压缩BlazeDS WAR文件的内容:jar xvf blazeds.war。

把JAR文件都拷贝到项目的lib文件夹下:cp-R WEB-INF/lib /sodaSample。

理由八:可以在已有Java应用中运用

比方说这个简单的苏打调配系统,假设你想要扩展这个已开发好的服务,让其它Flex应用可以远程调用。在现成的应用中配置BlazeDS的基本步骤有:

修改WEB-INF/flex文件夹下的BlazeDS配置文件

在该应用对应的web.xml文件里定义MessageBrokerServlet和session监听器

配置好BlazeDS之后,再把苏打调配服务添加到BlazeDS远程配置文件里,Flex客户就能远程调用了。这个过程通过在配置文件里定义一个目的地(destination)、一个或多个信道(channel)来传输数据。基本的AMF信道定义在services.xml文件里。下面这段配置在 remoting-config.xml里定义了目的地

(destination):1

2

3com.gorillalogic.sodaSample.SodaService

4

通过在远程调用配置文件里定义端点(endpoint),Flex客户端就可以调用任何一个基本的Java服务。要是想把Java数据模型也传送到Flex客户端的话,只要在ActionScript类中定义好两者间的映射:1 [Bindable][RemoteClass(alias=“com.gorillalogic.sodaSample.SodaModel”)]

这段代码告诉Flex,在远程调用的服务返回SodaModel的时候,把它映射到Flex的SodaModel。本例

中的Flex客户端显示的就是如何调用这个Java服务。调用返回一个已经填写好预定信息的SodaModel:1 public function callSodaService():void {

2var sodaType:String = type.text;

3var sodaCount:int = parseInt(cnt.text);

4var flag:Boolean = preOpen.selected;

5remoteObject.getSoda(sodaType, sodaCount, flag);}

7private function resultHandler(event:ResultEvent):void {var sodaModel:SodaModel = event.result as SodaModel;}

Flex返回的结果是通用的result变量,可以直接映射到你的SodaModel。这里我就不深入讨论怎么实现映射了,但其中值得提到的是要在编译配置里声明services-config.xml路径,像这样:

-locale en_US-services=/nsource/sodaSample/web/WEB-INF/flex/services-config.xml-context-root /

如果不添加这个路径的话,你的Flex客户端就没发找到Java服务。同样的方式,你还能把一个对象从客户端传递回服务器端。比如,你可以把一个空的soda model发回服务器(审校注:原文这里写的是客户端,根据上下文判断这里应该是服务器端)。

理由九:可以通过Java来扩展和修改BlazeDS

假如你想添加特殊的日志来记录苏打调配服务被调用的情况,那么你可以扩展标准的Java适配器来添加日志功能。

首先,添加一个继承了JavaAdapter的Java类:1 import flex.messaging.services.remoting.adapters.JavaAdapter.3public class TimingJavaAdapter extends JavaAdapter {

其次,重载invoke()方法: 1public Object invoke(Message message){

3RemotingMessage remotingMessage =(RemotingMessage)message;

5String operation = remotingMessage.getOperation();

7String destination = remotingMessage.getDestination();

9Logger.info(“calling ” + operation + “ on destination ” + destination);

11Object data = super.invoke(message);

13return data;

15}

这个方法中,你可以看到调用之后的操作和调用的目的地(destination)。这种方法也能用来处理其它一些问题,比如记录向服务器发送调用需要多长时间。

理由十:HTML和JSP也能调用BlazeDS

从HTML和JSP也能调用BlazeDS,这种调用有几种不同的实现方式,比如通过Browser Manager或fflashVarsf来实现。Flex应用能够读取由HTML页面设置的fflashVarsf。

比方说你想要通过HTML页面来发送你的用户名和准备预定的苏打类型,你可以在HTML页面这样设置flashVars:1

2

3

4

然后,在Flex应用中,你可以通过读取应用参数来获取这些变量:1 var username:String;

3if(Application.application.parameters.hasOwnProperty(“username”)){

5username = Application.application.parameters.username;

7}

理由十一:Flex和BlazeDS的数据传输性能远胜于其它Ajax解决方案

目前使用的远程过程调用(RPC)都默认选择AMF二进制协议。AMF是个开放的标准,而且相当快。James Ward曾举例比较过多种远程调用解决方案。尽管其它Ajax技术——比如Dojo——已经能够快速处理几百行的数据,但是用Flex和BlazeDS的话可以轻松搞定成千上万行。(请参考James Ward's census,可以了解下各种不同的RIA数据加载技术的测评。)

理由十二:Java客户端能够直接调用BlazeDS

最新发布的BlazeDS当中含有一个Java的AMF类,通过这个类,你可以在Java客户端直接调用BlazeDS服务器。对于单元测试和加载测试来说,BlazeDS的这种调用方式非常实用。

理由十三:Spring下也能用

Adobe和Spring互相联手,尝试将双方项目集成起来。他们发布的第一个Spring–BlazeDS集成版本就向大家展示了他们的良苦用心。Spring Bean能够以远程服务的方式被调用,因此可以清除很多重复的配置文件。更多这方面的相关信息,可以参考该项目的主页。

结论

开源的BlazeDS创建在Java基础上,无论是对新的还是已有的Java服务器项目来说都是个很好的选择。Flex、BlazeDS技术能够提供高性能的远程通信,支持Flex和Java间的对象映射,因此是RIA开发的理想选择。Flex和BlazeDS的开发新手,如果曾经是Java开发员的话,会发现整个开发过程效率非常高,而且很容易掌握。

Flex加BlazeDS还是开发大型Java企业应用的理想选择。我们组开发的上个项目中,应用涉及到50多个不同的界面,而且服务器和客户端之间需要规律性地互传几千行的代码。这类应用几乎没法通过传统的Ajax技术来实现。但是在引入了Flex和BlazeDS之后,我们在年内就发布了第一个版本。看,这就是这对动态组合为你的应用开发项目带来的过人之处。

第二篇:Java程序员学习Flex和BlazeDS七大理由

Java程序员学习Flex和BlazeDS七大理由

本文列述了7个Java程序员应当学习Flex和BlazeDS的理由,讨论了为什么Flex结合BlazeDS是开发RIA的最佳组合之一。无论是高度交互的网站还是以Java为后端的企业应用,这项组合都是最佳选择之一。更重要的是,这项组合能同时为开发员和企

业带来高回报(ROI)。

在阐述Java程序员应

当学习BlazeDS的7

条理由时,我以一个假

想的苏打分派系统来

展示如何让已有的Java程序转变为RIA

应用。通过这个例子,我同时还会讲解到

BlazeDS在已有Java

应用或新建Java应用

中的多种不同用法。

开源

Flex软件开发工具箱(SDK)的核心是个开源框架,专门用来开发、维护那些在不同浏览器、不同操作系统下界面都相同的RIA应用。Flex发布采用的是Mozilla公共许可证(MozillaPublicLicense)。编译后的Flex应用在AdobeFlash平台下运行。

BlazeDS是连接Flex和Java的索桥,是项针对远程调用和消息传递的开源技术。在Java应用服务器上,它以servlet的形式存在,因此可以在任何标准Java网络应用中运用它。BlazeDS以LGPL(LesserGNUPublicLicense)公共许可证书发布。在发布BlazeDS的同时,Adobe还公布了AMF(ActionScriptMessageFormat)规格说明,BlazeDS、Java和Flex客户端间以这种简洁的二进制格式实现通信。完善的社区支持

Flex社区非常活跃,社区贡献了大量项目。Flex.org,这个配以社区新闻的Adobe站点几乎每天都有新的社区贡献;Yahoo!上的Flex用户组的成员也已经超过了11000。

再比如GoogleCode上的Flexlib项目,已经提交了大量的开源UI组件。Swiz和Mate项目贡献了优化事件处理的框架;还有GorillaLogic贡献了自动化UI测试的FlexMonkeym项目。

带来广阔的就业前景

据Adobe的Flex“传道士”——JamesWard看来,Flex高级开发员的市场需求非常大,学习Flex能让你拥有极具市场竞争力的开发技能。

更高的业务效益回报

总体上,开发企业web应用不是个轻松的活,这基本上是众所周知的事实。Flex和BlazeDS提供的不仅仅是功能强大的开发工具,而且开发技术本身相对也非常简单。开发效率可以得到大幅度的提升,产品因此可以很快推向市场。Flex和Flash带来的用户体验也相对更有魅力,对增加流量、提高用户转化率

(conversionrate)很有帮助。

很经典的一个例子是Borders连锁书店。他们最近发布了带有“魔法书架”的新网站,这个网站采用Flash接口来模拟书籍借阅的过程。Borders发现这一模拟借阅非常明显地提到了用户转换率:“借助这个Flash驱动的接口,用户可以浏览书籍、DVD和CD的封面,用户转换率比其他没有此项功能的网站高出62%”。Flex是第一个专门为创建UI而设计的语言

大部分语言都不是在第一时间设计其对UI的支持。Java中Swing包的实现刚好是个很好的证明。也就是这个原因,很多像捆绑数据这样的简单动作在Swing当中的实现就非常痛苦。用Swing最大的问题在于,要想提高开发效率就必须要对其API了如指掌。

Flex刚好相反,它是专门为创建webUI而设计的。正如BruceEckel所说,Flex是第一个针对UI开发的领域特定语言(DSL)。用Flex构建UI比其它诸如JSP、JSF、Swing等技术简便得多。语言本身糅合了数据绑定、事件处理、控件布局以及其它一些UI常用开发技巧,就算对语言没有深刻的理解也不会影响开发效率。

编程风格近似于Java

你可以继续使用现有的Java开发工具来开发Flex应用。当然也可以采用SDK中携带的免费命令行工具,AdobeFlexBuilder(一个Eclipse插件),或最近的IntelliJIDEA8。

Flex提供的是一个有状态环境,在这个环境中,数据从客户端加载。这种编程模式更像是开发桌面客户端而非HTML编程,这种风格对于用过JavaSwing编程的开发员来说应该是相当熟悉。

Flex是MXML(类似XML的UI标记语言)和AdobeActionScript(面向对象的解析语言)的结合体。鉴于这种结合方式,Flex编程与Java非常相似,因为两者用的都是熟知的面向对象的概念。

最理想的开发环境是把Flex应用创建在web部署文件夹下。这样一来,每次更新应用之后都不需要重新部署,只要在浏览器下刷新一下就可以了。用Flex和BlazeDS开发后,开发效率绝对比之前有很大的提升。

BlazeDS可以在任何Java应用服务器上运行

BlazeDS目前已发布了多个版本,其中的turnkey版本还包含了为BlazeDS配置的ApacheTomcat。本文中,我用的是二进制发布版本,其中含有一个WAR用来展示如何把应用部署到各种应用服务器上去。不用这个WAR的话,你也可以从中提取JAR文件放到自己的项目中去。关于安装BlazeDS的各种选项内容,可以参见BlazeDS的wiki。

这里举一个简单的例子,比方说要在已有的一个简单的苏打调配系统中应用BlazeDS。你只要把JAR文件放到项目文件夹下,然后就可以在应用里直接用BlazeDS,可以部署到能够部署应用的任何地方。

参考资料

第三篇:Java 程序员学习路线图

第一阶段:Java核心部分

JavaSE

Java核心语法、Java核心API、面向对象程序设计、Java容器类(集合)、GUI 用户界面编程、I/O体系结构、多线程并发模型、网络编程、数据结构.掌握Java核心语法与面向对象思想,能熟练运用常用设计模式与编程技巧完成桌面应用或网络通信类程序的开发.140

Java5.0新特性

Autoboxing/unboxing(自动装包/拆包)、Enums(枚举)、Varargs(可变参数)、Static Implements(静态导入)、for each(增强)循环、Generic(泛型)程序设计、Annotation(注释)无侵入式程序设计等

掌握全新java设计思想, 把握未来java技术发展趋势.16

Java高级技术

Java反射(Reflect)与动态代理(Dynamic Proxy)

深入研究Java语言高级技术,设计更加灵活、扩展性更强的动态程序.Java开发IDE

各种Java常用开发工具(如:Eclipse、NetBean等)的使用

掌握Java开发IDE的使用与代码调试技巧

软件测试

黑盒、白盒测试.Java测试框架Junit.理解测试的重要性.学习使用Juni进行单元测试、参数化测试、测试套件的开发和测试运行器的使用...............第二阶段: 数据库编程

Oracle/SQL语言

以Oracle为平台,介绍Oracle数据库的安装、Oracle体系结构、物理组件、权限分配、数据管理、分析各种关系数据库设计的常见问题,深入讲解数据库设计范式.全面讲解各类SQL语句的使用和优化策略.深入学习Oracle数据库对象:index(索引)、view(视图)、sequence(序列)、tirgger(触发器)、comment(注释).理解Oracle数据库体系结构,掌握Oracle数据库基本操作,数据库设计,开发和管理知识,熟练掌握SQL和Oracle对象使用.PL/SQL

PL/SQL语法,作用.使用游标、存储过程、函数、触发器解决数据库性能问题.掌握PL/SQL的使用,能够使用存储过程开发高效的数据处理系统,解决数据库性能瓶颈并

实现数据优化.MySql

以MySql为平台,介绍MySql数据库的安装、权限分配、数据管理.数据库使用.掌握MySql数据库的使用.JDBC

使用Java操作数据库,包括:数据库连接、结果集处理、存储过程调用、元数据、大数据类型处理、事务管理,批更新,可滚动、可更新的结果集,SQL3.0新特性,连接池技术,数据库应用架构.熟练掌握Java数据库编程技巧,能使用高级API、DAO编程模式编写高性能的数据持久层应用....................第三阶段: Web应用

XML

XML的概念与作用、基本语法、验证、XML模式定义(DTD、Schema)、XML解析(SAX、DOM)、Jdom和Dom4j、xpath、XSL.掌握XML使用及XML文档的处理技术.使用XML进行信息配置、数据存储以及数据交换.Html

介绍Web原理.Web页面开发的基本过程,超文本标记语言(HTML)基本标签的使用,CSS 层叠式样式表

掌握HTML基本标签的使用,能利用CSS优化页面设计的方法

JavaScript

JavaScript 脚本语言基本语法,常用函数,JavaScript高级DOM编程及页面组件控制掌握基于对象的JavaScript程序设计,能通过W3C DOM模型完成动态页面脚本开发

Web容器之Tomcat

Tomcat的下载、安装、启动分析、体系结构、基本配置、应用程序部署、管理和性能调优.掌握使用Tomcat的使用.Java Web编程Servlets

HTTP协议详解,Servlet核心对象操作,Servlet生命周期,Session与Cookie的应用场景,过滤器与监听器.分层结构.全面掌握Servlet 2.5 API的使用,能够独立分析设计基于N层体系结构的Web 应用,熟练使用各种Java EE应用服务器

Java Web编程JSP

JSP介绍、创建、部署JSP程序,JSP的三个指令、六个动作和九个内置对象.JSP中异常处理,自定义标签,EL和JSTL

掌握JSP2.0规范技术,掌握JSP进行动态页面开发的专业技术,能结合Servlet完成B/S应用的设计与开发工作

...............第四阶段: 流行框架技术

J2EE容器之JBoss

JBoss的下载、安装、启动分析、体系结构、基本配置、应用程序部署、管理和性能调优.掌握使用JBoss的使用.Struts

MVC设计思想,Strust1的体系架构、控制器组件、视图组件、框架的扩展、国际化、验证框架、常用标签库等.理解MVC模式,掌握基于struts1的java EE解决方案

学习Struts1和WebWork结合而成的Struts2.包括:Struts2的无侵入设计,控制器组件、视图组件、动态方法调用、包、拦截器、annotaction的支持、国际化、验证框架、常用标签等.深入学习Struts2,完成从Struts1到Struts2的Java Web应用的升级.Hibernate

学习领域建模思想与O/R Mapping,各种对象关系映射、实体状态、继承关系、组件映射、查询缓存与二级缓存配置、事务锁机制与性能调优.能以领域建模思想完成持久化层的设计,使用Hibernate完成持久化层的开发工作.40

AJAX

全面讲解AJAX应用的设计与开发方式,内容包括: XMLHttpRequest对象操作、W3C DOM模型操作、jQuery与DWR快速开发Ajax.能通过AJAX开源框架实现Web 2.0应用中的异步通讯.掌握DWR的开发原理,并熟练使用DWR简化Ajax的开发

SVN/CVS及编程规范

掌握SVN/CVS的配置和使用;软件编程规范

SVN/CVS的配置和使用;软件编程规范

Spring

学习最新Spring2.0技术.包括:IOC、AOP,使用Spring的ORM支持完成DAO层的开发,事务层管理,Springde MVC框架,使用Spring与EJB3、Struts1(Struts2)、Hibernate等流行框架进行整合.通过Spring完成多层架构应用的设计与开发工作,掌握面向接口编程的重要性.通过Spring去简化企业开发.第五阶段: JavaEE企业应用

Linux

学习Linux的安装和基本操作,通过SSH2访问Linux,在Linux安装JDK,安装Web服务器、安装数据库服务器,安装和部署Java应用程序。

掌握Linux的基本操作,掌握在Linux发表基于Java的Web应用程序。

OOAD

学习面向对象的分析和设计

掌握面向对象的分析和设计。

Java设计模式

学习Java经典设计模式。包括单例模式、命令模式、工厂模式、拦截器模式等。学习经典的软件设计思想,能够写出易于维护和更容易扩展性的代码。

8J2EE容器之WebLogic

Weblogic的下载、安装、启动分析、体系结构(Domain、Cluster、Machine、Server、Administrative Server、Managed Server、Node Manager)、基本配置、应用程序部署、管理和性能调优.集群的概念和配置.掌握使用WebLogic的使用.JAVA EE/EJB

高级编程

创建基于JAVA EE5.0规范的EJB中间件学习将EJB融入分布式企业级应用程序的编程技术,学习Session Beans,Entity Beans,Message-Driven Beans,JTA/JTS,JAAS,JNDI,RMI等技术同时讲解最新EJB3.0技术规范。

掌握基于EJB3.0规范的企业应用架构编程接口及访问EJB技术实现,掌握开发和运行基于 JAVA EE 应用程序所遇到的常见问题,包括安全性,伸缩性和负载平衡管理等。

Web Services

了解Web Services技术,使用JAX-RPC和JAXWS开发Web Services项目,SOA系统的设计与开发,流行的XFire实现Web Services.能使用Web Service技术完成SOA系统的设计与开发和使用XFire完成企业应用.

第四篇:java程序员

如何迅速成为Java高手[Tomjava原创]

很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!

要想学好Java,首先要知道Java的大致分类。我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。J2SE开发桌面应用软件比起VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。所以现在应用最广泛又最好学的就是J2EE了。J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。

那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。然后你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?还好,SUN提供了Javabean可以把你的JSP中的Java代码封装起来,便于调用也便于重用。接着就是EJB了,EJB就是Enterprise JavaBean,看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail了。

好了,对Java和J2EE有了一些基本概念之后,你就应该编一些程序了,千万不要纸上谈兵哦。最好找一些有实例且带光盘的书来看,这样看到好的程序就可以直接Ctrl+C再Ctrl+V,也不用劳您老大架再亲自把它再输一遍吧,再说直接复制还不用怕出错,何乐而不为呢!还有就是要经常上一些好的Java编程文章,有好的文章要Cut下来,有问题尽管问,只要问题不是太傻,一般高手都会回答你的。下面介绍几个好的Java方面的编程网站:

CSDN论坛 http:///那里Java资料比较全;

java.com.cnhttp://.cn/看这域名就知道有多牛,注册用户快接近一万了,同时在线人数也在一千左右,人气很旺的;

IBM的开发者网络http://IBM永远的蓝色巨人;

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!你现在最缺的是实际的工作经验,而不是书本上那些

凭空想出来的程序。所以你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他还愿意不厌其烦地教你,这样好象有点难哦!

还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。学Java必读的两个开源程序就是Jive和Pet Store.。Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站http:///去下载,或到同济技术论坛的服务器上ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要错过了。

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体“技术”,它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。关于设计模式的资料,还是向大家推荐banq的网站http:///,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring(重整)和极限XP编程,相信你又会上一个台阶。

做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧,你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的来了。。。当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?

下面介绍两个好的开源项目网站:

湖北省软件公共开发平台http://gro.clinux.org/

共创联盟http://cosoft.org.cn/

哇,好高兴哦,我终于成为高手了!非也,非也。古人云:“识时务者为俊杰”。你知道计算

机界现在的发展形势吗?你知道微软的.NET蓝图和SUN ONE计划之间的明争暗斗吗?你知道计算机技术将向何处发展吗?其实从各大计算机厂商最近的动作,都可以看出来“Web服务将是下一代互联网应用的制高点”,而微软的.NET蓝图和SUN ONE计划的斗争焦点,也就是Web服务。Web服务就是一个崭新的分布式计算模型,它是一系列标准的综合(XML,SOAP,UDDI,WSDL和WSFL等)。它使得不同语言编写的软件能够轻易的集成起来,使网络资源和Web站点变成一种服务而不是混乱的垃圾场。不远的将来,我们就可以在家里点击一下鼠标,就可以完成出门旅游的全部准备工作,包括定飞机票,定旅游线路,定好房间等。请注意,这所有的一切都是Web站点间自动完成的,再也不用象现在一样,表面上是电子商务,实际上很多环节都是人工操作。也许你会觉得这是天方夜谈,不过就近的说,你也很有可能承接一个项目,要集成两个企业的ERP系统。很有可能上游企业的系统是用Dephi编的,而下游企业的系统是用Java编的。你说你是Java高手,大家都看者你怎么做呢。所以啊,你还得学习新技术,如Web服务,而且你Dephi也要懂一点吧(Dephi6现在已经提供Web服务的控件了)。你编的Java系统,可能要和.NET集成,所以你.NET要懂一点吧?到最后,你可能发现你已经成为Java高手了,但很多时间却在搞别的技术。太极张三丰里说,最厉害的招式就是没有招式,可能就是这个道理吧!

因为刚刚兴起,所以网上Web服务的资料不是很多,我还是给大家推荐几个网站吧: 中国UDDI技术联盟http:///developerWorks/cn/xml/index.shtml?csdnIBM可是Web服务的力推者

呜„你费劲千心万苦,总算成为Java高手了,怎叫人不由喜极而泣呢!是啊,真不容易,真不简单,真叫人感动啊!那么打个电话告诉我吧,什么?我的电话号码是多少?昏到,你打电话问不就知道了吗,真是的„„

第五篇:java程序员面试题

1、你怎样理解Struts,又那些配置文件,以及作用? 理解:http://ruixin.iteye.com/blog/899289 配置文件:struts.xml 作用:struts 框架mvc 实现低耦合,便于程序的维护~ 配置文件控制流程的转向 很清晰~ 主要负责具体业务的实现和页面的转向~

2、怎么样来捕获数据库中的异常?

3、如何处理网页中的验证信息,如何友好的进行处理?

4、用javaScript实现java中的监听器功能?

5、你对对日外包的看法?

6、数据库连接方式由哪几种?

Jdbc、连接池、hibernate

7、你清楚哪几种设计模式,谈谈各种设计模式的类结构。

8、谈谈jsp和sevlet的区别,以及它们性能上的区别。

jsp是servlet的一种简化,jsp编译后是“类servlet”。servlet 主要是用来处理业务层;

jsp 则是主要负责 表现层。

servlet完全是java程序代码构成,擅长于流程控制和事务处理,而通过servlet来生成动态网页很不直观; 对于静态的html标签,servlet都必须使用页面输出流逐行输出。Servlet中没有内置对象。Jsp由html代码和jsp标签构成可以方便地编写动态网页,在struts框架中,jsp位于MVC设计模式的视图层,而servlet位于控制层。

总之,使用jsp只需要完成程序员需要输出到客户端的内容,至于jsp中的java脚本如果镶嵌到一个类中,由jsp容器完成,而servlet则是个完整的java类,这个类的service方法用于生成对客户端的响应

9、如何来编写存储过程,如何优化存储过程,以及存储过程和TSQL的区别。

10、提供的培训,CMM-5软件开发流程培训、代码编写规范和业务流程培训、对日语的培训。

1、为什么要选择这个行业,和计算机专业的相比有什么优势?

2、Servlet是什么,以及生命周期?

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

3、怎么理解事务?

4、怎么理解MVC?

自己做自己的事情,主要强调分层,5、同时插入大量数据,使用何种方法优化?Batch

6、多个有关系得怎么样操作?

7、你认为你还有什么优点在前面没有提到?

8、对加班的看法?

9、与上级意见不一致时怎么样处理?10、11、12、13、14、15、16、17、18、19、20、21、22、23、你如何理解团队精神?

你怎样处理学习新技术和项目开发之间的矛盾? 怎样去学习新技术?

作为一个初级程序员怎么样弥补与有经验程序员之间的差距? 你对索引的理解,索引有几种,什么时候用索引? 对Oracle理解?

怎样优化复杂的查询语句? 你对Jdbc理解?

对Finally块的理解和应用? 游标的理解? ResultSet 重载,重写? 签名

EJB的事务,Hibernate的事务? Struts的标签? 重定向和跳转? A、:效率高,速度快

a.地址栏不改变跳转——服务器端跳转,服务器之间内部转,相同的request,可传参;

b.执行到跳转语句后无条件立刻跳转——之后的代码不再被执行;

注意:如果使用forward跳转,则一定要在跳转之前释放掉全部的资源;

c.使用forward时,request设置的属性依然能保留在下一个页面(setAttribute);d.通过传递参数。

e.地址中的”/”代表是:http://localhost:8080/Test B、response.sendRedirect(“地址”):效率低,速度慢

a.地址栏改变跳转——客户端跳转(其中地址可以是任意的)

b.所有代码执行完毕之后再跳转,跳转语句后面的代码还是会执行,除非在其后面加上return(return)需复杂一些。

<% Response.sendRedirect(“aa.jsp”);boolean b = true;

if(b){ Return;} System.out.println(“aaaaaaaaaa”);%>

c.不能保存request属性——地址改变了,客户端跳转,不同的request d.通过对URL地址的重写传递参数:

response.sendRedirect(“responseDemo04.jsp?id=mldn”);

e.地址中的”/”代表是:http://localhost:8080/

下面是两种比较重要的跳转,我还是与上次的一次,把我做的笔记贴出来:24、25、Hibernate的左联结和右连接,缓存,数据加载? 面向对象如何理解?

26、EJB中CMP和BMP,SessionBean的机制?27、28、29、对日外包是否有抵触情绪? 如何减少Servlet的请求? 对设计模式了解多少?作过的项目中用过那些设计模式? 30、31、32、33、34、35、36、37、38、39、40、41、42、43、44、45、怎样看待团队合作,在团队合作中你扮演什么样的角色,遇到技术难题时怎么解决? Exception的层次结构? EJB对数据库的访问机制? Struts中是否有事务处理? Hibernate的其它功能(除了ORM)? 如何提高数据库中的数据查询效率? 作为项目经理如何对组内成员分工? 描述一下你做过项目的流程。

加班到12点,突然有人来问你技术上的难题,你会如何处理? Oracle的冷备份、热备份 Strurs中怎样实现 Hibernate怎样实现ORM Spring 的事务处理机制

Strurs的验证方式,Javascript的验证的方式

一个是服务器端验证,一个是客户端验证

Struts的工作机制 Delete/trancate的区别

trancate与delete都是删除数据,不同的是trancate是将表的所有数据都删除,而delete可以有选择地删除数据; delete删除数据是记录在日志中的,可以通过其将数据恢复,而trancate则是将整个表截断,其操作是不记录在日志里的。46、47、48、作为项目组长,你遇到的最大问题是什么?如何解决?

Ajax/内嵌框架实现局部刷新,有什么差别?

Exception/Error的区别,在什么情况下可以抛出RuntimeException 父类不同

知道异常和错误最本质的区别就是异常能被开发人员处理而错误时系统本来自带的,一般无法处理也不需要我们程序员来处理。

在程序运行时候出错而又不是系统原因差生的,一般是由于程序原因产生,比如程序写的不够严谨、完善

典型的RuntimeException

ArithmeticException、ClassCastException、IndexOutOfBoundsException、NullPointerException、UnsupportedOperationException 等.49、50、51、52、53、54、55、56、57、58、59、Orcale 物化视图(MV)

业务处理模块中,是如何处理事务? Sql语句如何优化 数据库右连接

JDBC的连接关闭在哪?

Finally语句块内

错误处理模块是放在哪个层的。接口能否继承接口。

接口可以继承接口..但是要使用extends~而不是用implements 抽象类能否继承实体类。

抽象类是可以继承实体类,但前提是实体类必须有明确的构造函数 答案很明确,可以继承。

项目中查询时怎么样实现的?

作为项目负责人你是管理这个团队的?

在你做项目过程中遇到些什么问题,是怎么样解决的?

Jquery中的几种选择器:

Javascript如何进行数字和字符串之间的转换?

数字类型转换成String类型用 对象=对象.toString()方法,字符串转换成数字类型则是对象=Number(对象);

下载Java程序员学习Flex和BlazeDS的十三个理由word格式文档
下载Java程序员学习Flex和BlazeDS的十三个理由.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    JAVA程序员求职信

    JAVA程序员求职信范文 尊敬的领导: 您好!十分感谢您在百忙之中能翻阅我的自荐信。与公司是一种选择,与我则是一种机会。在上千份大同小异的求职信中,我期望你手中的这份能给您......

    java程序员简历

    x x x 个 人 简 历 个人资料: 姓 名:xxx 性 别:男 出生日期:199x年xx月xx日 年 龄:25 电 话:137xxxxxxxx 住 址:xxxxxxx 毕业院校:xxxxxxxxxxxxxxxxxxxxxx 学 历:本科 E-mail: x xxxx......

    Java程序员面试题

    Java程序员面试题 1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面:1)抽象2)继承3)封装4)多态性 2、作用域public,private,protected,以及不写时的区别 答......

    经典—java程序员个人简历(范文大全)

    姓名:个人简历网 目前所在: 广州 年龄: 23 户口所在: 广西 国籍: 中国 婚姻状况: 未婚 民族: 汉族 培训认证: 未参加 身高: 160 cm 诚信徽章: 未申请 体重: 45 kg 人才测评: 未测评......

    JAVA程序员面试题

    JAVA程序员面试题 第一,谈谈final, finally, finalize的区别。 final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不......

    JAVA程序员之路(★)

    怎么学好java JAVA程序员之路 很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的......

    java程序员之路

    很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”。但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛! 要想学好Java,首先要知......

    Java程序员面试题

    北京千渡网讯科技有限公司博宝艺术网http:// Java程序员面试题 1. 下列程序段执行后,t5的结果是_____. int t1=5,t2=6,t3=7,t4,t5; t4 = t1 6)x = sb.indexOf("b"); sb.delet......