科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Struts,MVC 的一种开放源码实现

Struts,MVC 的一种开放源码实现

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

简介 小学生也可以在因特网上发布 HTML 网页。但是,小学生的网页和专业开发的网站有质的区别。

作者:中国IT实验室 来源:中国IT实验室 2007年9月30日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共4页)

 

  join.jsp 的活动

  1. 显示打开的输入网页。
  2. 从表单参数中读取 email 的值。
  3. 验证 email 地址。
  4. 如果 email 地址有效:
    • 将该地址添加到数据库中。
    • 重定向到下一个网页。
  5. 如果 email 地址无效:
    • 设置错误消息。
    • 重新显示含有错误消息的 join.jsp 。

  单页方法的后果

  • HTML Java 强耦合在一起
    JSP 文件的编写者必须既是网页设计者,又是 Java 开发者。其结果通常要么是很糟的 Java 代码,要么是难看的网页,有时甚至 Java 代码和网页都很糟。
  • Java JavaScript 的不足
    随着网页逐渐变大,很容易想到实现一些 JavaScript。当网页中出现 JavaScript 时,这种脚本就可能与 Java 代码产生混淆。可能产生混淆的一个例子是使用客户端的 JavaScript 来验证 email 域。
  • 内嵌的流程逻辑
    要理解应用程序的整个流程,您必须浏览所有网页。试想一下拥有 100 个网页的网站的错综复杂的逻辑。
  • 调试困难
    除了很糟的外观之外,HTML 标记、Java 代码和 JavaScript 代码都集中在一个网页中还使调试变得相当困难。
  • 强耦合
    更改业务逻辑或数据可能牵涉相关的每个网页。
  • 美学
    在很大的网页中,这编码样式看起来杂乱无章。我过去进行 Microsoft ASP 开发时,我经常看到有 1000 行的网页。即使有彩色语法显示,阅读和理解这些代码仍然比较困难。

  请别在我的 HTML 中加入太多的 Java 代码

    在清单 1 中,不是 Java 代码中有大量的 HTML,而是在 HTML 文件中有大量的 Java 代码。从这个观点来看,除了允许网页设计人员编写 Java 代码之外,我实际上没做什么。但是,我们并不是一无所有;在 JSP 1.1 中,我们获得一种称为“标记”的新特性。

    JSP 标记只是将代码从 JSP 文件中抽取出来的一种方式。有人将 JSP 标记看作是 JSP 文件的宏,其中用于这个标记的代码包含在 servlet 中。(宏的观点在很大程度上是正确的。)出于同样的原因,我不希望在 Java 代码中看到 HTML 标记,我也不希望在 JSP 文件中看到 Java 代码。JSP 技术的整个出发点就是允许网页设计人员创建 servlet,而不必纠缠于 Java 代码。标记允许 Java 程序员将 Java 代码伪装成 HTML 来扩展 JSP 文件。图 3 显示了从 JSP 网页中抽取代码并将它们放入 JSP 标记中的一般概念。


JSP tag breakdown
    图 3. JSP 标记

    清单 2 是用来说明 Struts 标记的功能的一个例子。在清单 2 中,正常的 HTML <form> 标记被用 Struts <form:form> 标记替换。清单 3 显示了浏览器接收到的结果 HTML。浏览器获得 HTML <form> 标记,但带有附加代码,如 JavaScript。附加的 JavaScript 激活 email 地址域。服务器端的 <form:form> 标记代码创建适当的 HTML,并使网页设计人员不再接触 JavaScript。



  清单 2. Struts form 标记

<form:form action="join.do" focus="email" >

    <form:text   property="email" size="30" maxlength="30"/>

    <form:submit property="submit" value="Submit"/>

</form:form>


  清单 3. 发送给浏览器的结果 HTML

<form name="joinForm" method="POST" action="join.do;jsessionid=ndj71hjo01">

    <input type="text" name="email" maxlength="30" size="30" value="">

    <input type="submit" name="submit" value="Submit">

</form>

<script language="JavaScript">

<!--

    document.joinForm.email.focus()

// -->

</script>

 

  有关 JSP 标记的注意事项:

  • JSP 标记需要一个运行 JSP 1.1 或更高版本的容器。
  • JSP 标记在服务器上运行,而不像 HTML 标记那样由客户机解释。
  • JSP 标记提供了适当的代码重用机制。
  • 可以使用一种称为 include 的 JSP 机制将 HTML 和 JavaScript 添加到网页中。但是,开发人员常常会创建巨大的 JavaScript 库文件,这些库文件被包含在 JSP 文件中。结果返回给客户机的 HTML 网页要比必需的 HMTL 网页大得多。 include 的正确用法是仅将它用于生成诸如页眉和页脚这类内容的 HTML 代码段。
  • 通过抽取出 Java 代码,JSP 标记使开发角色更加专业化。

  模型-视图-控制器 (MVC)

    JSP 标记只解决了部分问题。我们还得处理验证、流程控制和更新应用程序的状态等问题。这正是 MVC 发挥作用的地方。MVC 通过将问题分为三个类别来帮助解决单一模块方法所遇到的某些问题:

  • Model(模型)
    模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。
  • View(视图)
    视图提供模型的表示。它是应用程序的 外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。
  • Controller(控制器)
    控制器对用户的输入作出反应。它创建并设置模型。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章