Java Web Application的最新技术比较与体会

原创 2002年12月02日 16:41:00

 

Java Web Application的最新技术比较与体会

作者:bwwlpnn

关于用Java 来实现Web Application的最新技术,我想不妨从Open Source 的 Portal 实现 -- Jetspeed (http://jakarta.apache.org/jetspeed/site/index.html) -- 作为一个起点。

* Jetspeed 的技术核心是 Turbine 和 Velocity

* Jetspeed 本身不是一个Web Application Server, 不能独自运行,而是以.WAR文件的形式 deploy 到某一个Web Application Server 上才能运行。Tomcat是Jetspeed的开发平台,理论上Jetspeed能运行在任何支持Servlet 2.2/2.3的Web Application Server上。我已经能够把Jetspeed 运行在WebLogic 6.1 sp2 上了,当然要做一些必要的配置。

* Jetspeed 只是开发 Web Application 的一个前端(front end)的framework,是建立在Servlet的基础上的。EJB是开发 n-tier applications 的后端(back end)的framework. 两者可以很好地结合在一起来应用。

* Turbine vs. Struts: 两者都实现了MVC中的view 和 controller的要求。只不过Turbine 在 view 的实现上主要采用了 Velocity, Turbine能支持JSP,但是支持的不好,且不推荐使用JSP (详见下文);Struts 在 view 的实现上只采用JSP。如果要实现controller, 两者不能同时使用。即在一个Web Application中只能用Turbine或Struts两者之一来实现controller. 当然,对于view的实现,两者应该可以同时使用。

* Velocity vs. JSP: 两者都是实现同一功能的template languages. JSP 是 Sun 的标准,Velocity是 Open Source 开发的系统。网上有几篇详尽的文章 (
http://jakarta.apache.org/velocity/ymtd/ymtd.html) 比较两者的异同,由于是Open Source写的,当然偏向Velocity喽。不过我详细读过一遍,文章写得有理有据,全都是developer的经验,并没有推销Velocity之嫌。每篇文章后都有一句:You make the decision. 在Open Source 看来,JSP 是 Sun 开发的一个"不好用"的产品。"不好用"主要体现在: 难于Debug; 没有必要地把简单问题复杂化, 如JSP的先编译再运行;不能防止用户将Java code 嵌入JSP, 从而破坏MVC的设计. 并且Sun 将JSP冠之以"Standard",有“胁天子以令诸侯”之嫌。当然,Struts和Tag Lib将Java code 从JSP中剥离,挽救了JSP。Sun为了保住JSP这个"Sun proprietary product", 只好求助于Struts这棵"救命草".

* 如果不用于Jetspeed portlet的开发,Turbine也是一个很好的开发Web Application的Framework. 全世界30多个developers 经过3 年的开发,将Web Application开发中有共性的问题提出并加以解决。从这个角度看,Turbine 比 Struts 涵盖的范围要多得多。关于Turbine能做什么,可以参考:http://jakarta.apache.org/turbine/turbine-2/services.html ,这个URL列举了Turbine 27个 services, 其中Castor Service 能做 object to relational mapping (OR mapping)。在这些Services之间,和Turbine 与 Web Application 之间都是松耦合(decoupling)的,可以方便地使用。从大的角度看,Turbine 能做:
As a servlet framework with Turbine as the controller.
As a framework of useful code in your application.
As a Object-Relational Tool.
* 掌握Turbine/Velocity要花一些时间,但是从开发Java based Web Application的长远角度来看,花些时间还是值得的。毕竟吸取全世界30多个developers 经过3 年的开发的经验比自己re-invite the wheel强。

先写到这,以后我有什么体会,会继续和大家分享

(application)javaweb中application的用法

application对象 1 什么是application对象 ? (1) 当Web服务器启动时,Web服务器会自动创建一个application对象。application对象一旦创建,它将一...
  • jiafuwei520
  • jiafuwei520
  • 2015年03月18日 21:58
  • 19007

Java Web 中application(应用级) session(会话级) request(请求级)如何实现数据共享

在JavaWeb 中实现数据共享往往通过定义属性的方法来实现,而什么是属性呢?它类似于Hashmap中的键值对,有属性名和属性值作为设置属性方法的参数,而在其他的地方通过属性名去获取属性的值。   ...
  • JITHL
  • JITHL
  • 2016年08月21日 17:52
  • 1639

使用Java Web Start部署java application

使用Java Web Start部署java application Java Web Start(以下简称JWS)是SUN提供的一种通过Web来部署和发布Java 程序的新技术,它既可以用来发布Ap...
  • wonder4
  • wonder4
  • 2006年05月29日 17:37
  • 4089

J2EE与.NET技术架构的比较

一、J2EE简介 J2EE体系结构图:                          1.组件-容器模型 J2EE是一个基于组件-容器模型的系统平台,其核心概念是容器。容器是指为特定组件提供服务...
  • kanglix1an
  • kanglix1an
  • 2014年06月04日 19:36
  • 8060

Web开发中PHP与JAVA对比(转载)

在市场上的电子商务软件基本上可归结为两大阵营,即PHP阵营和Java阵营。但对接触电子商务不久的用户来说,看到的往往只是它们的表相,只是明显的价格差异,却很难看出它们之间的实际差异。其实,PHP+ M...
  • wyqwclsn
  • wyqwclsn
  • 2015年01月15日 16:23
  • 1119

语义网技术(Semantic Web Technologies)复习资料

(1)应用 1.RDF(S) 文件 -> RDF Graph   SPARQL Query (BGP, OPTIONAL, UNION, ORDER BY, FILTER) -> answer ...
  • huangxiongbiao
  • huangxiongbiao
  • 2015年09月11日 11:53
  • 2852

师门技术论坛:字符编码与java web application中的乱码

问题起源        对于计算机而言,它仅认识两个0和1,不管是在内存中还是外部存储设备上,我们所看到的文字、图片、视频等等“数据”在计算机中都是以二进制形式存在的。不同字符对应二进制数的规则,就...
  • Dove_Knowledge
  • Dove_Knowledge
  • 2016年11月15日 09:03
  • 467

OOP语言技术比较:Java,C++,Object Pascal[1]

  • 2010年08月07日 07:43
  • 25KB
  • 下载

Web前端技术比较

一直以来对Web前端开发兴趣颇深,用过一些框架产品。在JavaEye上看到一些刚接触前端开发朋友的疑问,犹豫这些产品的前景利弊,不知从何入手。想把自己的一点经验分享给大家,如有不到位之处请一起来纠正。...
  • chenweitang123
  • chenweitang123
  • 2011年02月09日 14:16
  • 1023

OOP语言技术比较:Java,C++,Object Pascal

  • 2009年05月21日 13:46
  • 32KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java Web Application的最新技术比较与体会
举报原因:
原因补充:

(最多只允许输入30个字)