首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

JSP 技术 -- 是友还是敌?(2)

JSP 技术 -- 是友还是敌?(2)

代码与标记
JSP 技术所列的第二个特性可能引起你的注意,那就是,JSP编码允许直接向标记页中插入 Java代码。为了理解作出这种决定的原因,我们回想一下制定 JSP规范时的情况。Sun 与微软的竞争一直非常激烈,主要源于微软 ActiveServer Pages (ASP)的成功。        JavaServer Pages与        ActiveServer Pages在名称上的相似并非巧合。而且模仿 ASP的多种特性似乎亦是有意的。所以 JSP 的作者选择了在他们的标记中加入Java 代码。      
作为向标记中加入 Java 代码的一个例子,清单 4 中的 JSP片段自动按需要添加行,以显示演员 Vector 中的每一项。
清单 4.插入到标记语言页中的 Java 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<%@ page import="com.ibm.display.PageUtils" %>
<%@ page import="com.ibm.display.PageInfo" %>
        <%@ page import="com.ibm.people.Actor" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.util.Vector" %>
<%
PageInfo pageInfo = (PageInfo)session.getAttribute("PAGE_DATA")
        Vector actors = pageInfo.getActors()
%>
<HTML>
<HEAD>
<TITLE>
<%=pageInfo.getTitle()%>
</TITLE>
</HEAD>
<BODY>
        <H2 ALIGN="center">搜索结果:演员</H2>
<CENTER>
<HR WIDTH="85%">
<TABLE WIDTH="50%" CELLPADDING="3" CELLSPACING="3" BORDER="1"
BGCOLOR="#FFFFCC">
<%
for (Iterator i = actors.iterator(); i.hasNext()) {
Actor actor = (Actor)i.next();
%>
<TR BGCOLOR="#FFCCCC">
<TH WIDTH="50%" ALIGN="center">
<%=actor.getLastName()%>
</TH>
<TH WIDTH="50%" ALIGN="center">
<%=actor.getFirstName()%>
</TH>
</TR>
<%
}
%>
</TABLE>
</CENTER>
</BODY>
</HTML>




请记住,到目前为止,我是在简述设计 JSP技术的最初目标。在后面的章节中谈及关于 JSP技术的问题时,我才会作出本人对此目标的判断。但是,您现在可能已经有点怀疑了,因为向JSP 页中嵌入代码似乎会导致与 JSP技术的第一个目标有关的问题(即把内容和表示分离开来)。但是实际上(啊咳),我还没有发表意见呢。
设计人员与开发人员
JSP技术值得一提的最后一个(也是值得赞赏的)目标是,它试图在应用程序开发过程中建立明确定义的角色。通过表面上将内容和表示分离开来,JSP技术在设计人员和开发人员之间划定了一条更加明显的界线。设计人员只使用标准的HTML、WML、或其他适当的语言创建标记,开发人员编写代码。当然,现在许多设计人员已经学会了JavaScript,所以不应惊奇的是,他们中的许多人也开始学习JSP 编码。很多情况下,他们不只是做纯标记,而是编写完整的 JSP页,并把它交给开发人员。进行常规的调整后,开发人员把这些 JSP页作为整体应用程序某一部分的前端放置到适当位置。但关键是,许多设计人员        会 JSP 编码,所以在这种环境中还有工作可做。      
问题
我已清楚地说明了良好的表示技术应提供的东西,以及 JSP技术试图解决的特定问题。现在,我准备切入正题:JSP技术的设计虽然想法很好,但是它带来了相当多的问题。在选择在应用程序中使用JSP 之前(您可能仍会使用),您应该至少知道可能存在的缺陷。      
您也应该了解 J2EE 编程平台常被忽视的一个小问题:此平台提供一种API并不意味着您必须使用它。正像这句话听起来有点愚蠢一样,许多开发人员还在JSP、EJB 或 JMS API 中挣扎,他们认为如果不使用这些API,他们的应用程序就有点不像是真正的“J2EE应用程序”。实际上,此平台承诺的诸多API,对大多数应用程序来说都不必要。如果您在使用 JSP技术时出现问题或对它有怀疑,        您完全可以不使用它!在选择在应用程序中使用 JSP技术之前,请仔细看一下它的优缺点。现在让我们看一下它的几个缺点。      
可移植性与语言锁定
JSP技术把您锁定在一种特定的语言中。对于这一点不应该看得太重。在设计企业应用程序时,Java技术是        唯一的语言选择(至少我的观点是这样)。在这个问题上,没有独立于语言的解决方案。当然,在游戏的这个阶段,我还不考虑Microsoft .NET 平台的烟幕及其实际情况。只有时间会证明 Microsoft.NET 平台是否会发展成为一个真正独立于语言的产品。(我很怀疑。)      
还有,选择 JSP 技术会强制您使用 Java语言,至少对表示和内容而言是这样。虽然 CORBA 可用于业务逻辑,但进行JSP 编码确实需要熟悉一些 servlet 以及核心的 Java语言。由于许多开发人员都是从 J2EE 平台转向 JSP编程,所以这点通常不是问题。
混合与独立
在全文中,我多次提到把内容和表示分离的想法。您也许已经听烦了,那么现在到了我们来确定JSP 是否真的实现了这个目标的时候了。正像我已说过的那样,既然 JSP        声称是为这一分离目标而设计的,所以我们应该假定它实现了这个目标?对吗?未必。
返回列表