科技行者

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

知识库

知识库 安全导航

至顶网软件频道再战MVC(二)

再战MVC(二)

  • 扫一扫
    分享文章到微信

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

MVC模式并不能自动保证一个结构设计是正确的,如何在一个系统的设计中正确地使用MVC架构模式与系统使用的技术有密切的关系。

作者:gaolin_bei 来源:CSDN 2008年2月27日

关键字: java MVC

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

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

网上找到了一个很好的例子来说声明:JSP能够生成HTML,WML甚至 XML,它对应于Web应用程序中的View部分。EJB作为数据库与应用程序的中介,提供了对数据的封装。一般SessionBean封装的是数据, EntityBean是封装对数据的操作。这两个部分合起来,对应于Web应用程序的Model部分。在技术上,JSP能够直接对EJB进行存取,但这并不是好办法,那样会混淆程序中的显示逻辑和控制逻辑,使得JSP的重用性能降低。这时候有两种解决方法,通过JavaBean或者Servlet作为中介的控制逻辑,对EJB所封装的数据进行存取。这时,JavaBean或者Servlet对应于Web引用程序中的Controller部分。两种类型的 Controller各有其优缺点:JSP同Servlet的交互不容易规范化,使得交互的过程变得复杂,但是Servlet可以单独同用户交互,实际上 JSP的运行时状态就是Servlet;而由于JavaBean的规范性,JSP同JavaBean的交互很容易,利用JavaBean的get/set 方法,JSP不需要过多的语句就可以完成数据的存取,这能够让JSP最大限度的集中在其视图功能上,而且,在桌面应用程序中使用JavaBean也很容易,而用Servlet就相对麻烦许多。根据不同的问题背景,可以选取不同的Controller,有时候也可以两者混合使用,或者直接在Servlet 中调用JavaBean。
 
   任何一种解决方案都是双刃剑,在我们获得的同时必须有一定的付出。这种模式也带来了如下一些实际的问题:1. 必须基于MVC组件的方式重新思考和设计应用结构。原来通过建立一个简单的JSP页面就能实现的应用现在变成了多个步骤的设计和实现过程。 2.所有的页面和组件必须在MVC框架中实现,所以必须进行附加地开发工作。
 
对于用原生的Servlet API来开发Model 2的程序的例子我将转载JavaResearch论坛上的文章,研究下对MVC模式在J2EE系统中的应用有很大帮助的。
 
(转载自“用实例学习MVC模式

下面以J2EE开发进行介绍。
Model层实现系统中的业务逻辑,通常可以用
JavaBeanEJB来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是ModelView之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。现在来看一个例子,看MVC模式是怎样工作的。

1.1.1 一个实例
1-a
<servlet>
      <servlet-name>Controller</servlet-name>
      <servlet-class>nepalon.simplestruts.Controller</servlet-class>
</servlet>  
<servlet-mapping>
    <servlet-name>Controller</servlet-name>
    <url-pattern>/simplestruts/servlet/control/Controller</url-pattern>
</servlet-mapping>
上面是web.xml文件的片段,在这里定义了一个servlet用于处理请求。
1-bTest.jsp文件):
<html>
<%@ page contentType="text/html;charset=gb2312"%> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>
实例首页</title>
</head>
<body>  
<table border="0" width="100%">
  <tr> 
<td><div align="center">
<a href="/simplestruts/servlet/control/Controller?command=showarticle">
显示文章</a>
</div></td>
  </tr>
</table>
</body>
</html>
在这个JSP中,我们并没有直接去调用JSPJavaBean,而是把请求分送到Servlet中。下面,我们来看看Servlet的代码。
1-c
package nepalon.simplestruts;
/**
 * <p>Title: MVC framework</p>
 * <p>Description: Controller<p>
 * <p>Copyright: R2003</p>
 * @author Nepalon
 * @version 1.0
 */
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

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

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