先说Java. 目前广泛使用的是Java 1.5。Java分为Java Platform, Enterprise Edition(Java EE), Java Standard Edtion(Java SE), Java Micro Edition(Java ME)。分别运用于企业开发,标准开发以及移动设备(嵌入式)开发。在Java是1.2版本的时候,SUN认为Java改动很大,所以称之为Java2。后来大家习惯了这种称呼方法,就有了所谓的J2EE, J2SE, J2ME,他们跟Java EE/SE/ME是完全等价的。不过在2006年,SUN放弃了J2xE的称呼,统一为Java XX Edition。这里侧重说一些关于Java EE的名词。
JDK:Java Development Kit。语源是SDK。是Java得开发包,面向使用Java开发的人员。JRE是Java Runtime Enviroment,面向的是使用Java相关软件或者服务的用户。
Servlet是Java EE的核心。它是一个响应网络请求,并做出答复的组件。可以处理各种网络请求,并返回结果。绝大多数时候,servlet响应的是http请求,返回的是一个html页面。Servlet处理请求得功能很完善,不过对于返回的Html各式并没有天生的良好支持。所以就有了JSP(Java Server Page),它是将类似Java语法的代码嵌入html页面中,生成动态的html。JSP实质上,在最后都会编译成servlet。所以,JSP只是一种简化html开发的技术。
基于Java EE的框架。所谓框架, 可以理解成是对底层进行了封装,并提供专有功能的程序库。Struts是Java EE的老牌开源框架。struts, webwork都是侧重于表示层方面的框架,都是基于MVC模型。Struts 1.2比较成熟,多数使用struts的都是基于此版本。所谓的struts 2.0是struts的开发者发现struts本身的固有模型有问题,所以完全放弃,跟另一个表示层框架webwork合并,使用Webwork2作为底层的新框架,跟struts 1.2完全不同。
Java Server Faces。一个模型更加高级的表示层框架。类似asp.net的事件驱动模型。有很大潜力,不过最大的缺点是,它还不是Java标准。(这个我没有用过,所以信息就这么多了)。
目前最流行的Java EE框架。基本延伸到了Java EE的整个模型中(表示层,业务逻辑层,数据层)。其主要特点是AOP和IoC。它的模块很多,可以只使用其中几个,而且Spring跟其他框架是配合关系,而不是竞争关系。Spring可以很好的整合目前流行的很多框架。Spring还有自己的一套轻量级MVC模型,可以取代Struts/Webwork。
Aspect Oriented Programming.面向切片编程(以前叫做面向方面编程)。将程序的一些服务代码,例如日志纪录,数据检验等分离出来。使得原始程序更加注重业务逻辑。
Inversion of Control.控制反转,或称依赖注入。一般情况下,要使用一个框架,就将框架的一些代码嵌入到原始程序中,这样做会产生对框架的依赖性。控制反转,就是再不改变原始的对象的情况下,反转整个过程,由外部来注入。这样就可以很容易的使用或者放弃某个框架。这个能力就是Spring的核心。
Data Access Object。数据访问对象,属于O/R mapping的一种实现方法。通过DAO对象,可以将程序对象的属性等映射到数据库中。
数据访问层的组件/框架。JDBC(Java DataBase Connection)是Java访问数据库的底层组件。JDO(Java Data Object),Java的数据对象。Hibernate是目前最流行的O/R mapping框架。自动的将程序对象和数据表做映射,封装了数据库的操作。Hibernate的底层是JDBC。
开源的单元测试框架。是利用反射机制实现的。
Eclipse如日中天的开发环境IDE。MyEclipse是建立在Eclipse基础上的升级版,提供很多功能,使得开发JavaEE更加容易。其他IDE还有NetBeans, JBuilder等等。
Apache是一个组织。作了很多开源的东西。其中最著名的就是Apache/Tomcat了。Apache/Tomcat是类似IIS那样的网络服务平台。作为JavaEE, PHP, Asp.net(mono)等等网络服务器的底层运行平台。一般来说,JavaEE编译好的文件要部署到Apache/Tomcat才可以浏览。
版本控制工具。CVS是老牌的,Subversion是摒弃CVS的一些缺点的新型版本控制工具。TortoiseSVN是SVN的可视化版本。
程序构建工具。make/makefile等的替代品。集成了编译、部署等功能。这个基本没有怎么研究过,所以不多说了。
国人开发的报表。表示层控件。开源的。
to be continue…
JBoss/Weblogic
]]>