选择java 进入自由开放的国度

随笔 - 49, 文章 - 3, 评论 - 154, 引用 - 1
数据加载中……

Struts学习心得之Struts流程篇(2)

    上一节我们搭建了Struts的运行和开发环境。这一节着重讲述MVC的基本概念和与使用JSP/JavaBean模式开发Web应用的比较。
(1)Tomcat的启动。
        从上一节的Tomcat的配置文件中,我们可以看到关于Struts的配置,当Tomcat启动时,会加载Struts的配置文件struts-config.xml,关于配置文件的内容请见
 (2)JSP/JavaBean开发Web应用
     在asp的时代,我们还没有讨论什么开发模式,也没有顾及MVC(虽然MVC的概念早已出现)。用asp开发不外乎以下两种情况,一、就是直接将代码集成到asp文件中,经验多的话,会将常用的函数放至一起,引用时只需include即可;二、对于复杂的应用,如文件上传等,我们会用其他语音如VB、Delphi等写一个控件(ADO即属于此类)。
     当java流行,JSP逐渐成熟,也正是模式、框架流行的时代,所以我们不管是看java的类库,还是看现在流行的框架,无一没有模式的存在。当你初接触JSP的时候,就可以看到书上说“尽量少的在jsp中插入Java代码”,这句话已是模式运用的端倪。
      下面我们先不管MVC,先从JSP/JavaBean来看Web的开发。这种模式很想上面提到的asp开发的第二种情况,我们将业务逻辑放到JavaBean中,只用JSP去表示页面。
       有过asp经验都知道,在接收表单数据的时候,我们不得不一个一个将数据接收过来,以至于有很长的一段如:CustomId = request("CustomId")的代码。而在JSP中,我们不用这么繁琐,一个我们可以用EL直接表示即可,另外我们可以利用javaBean的introspection机制。直接将表单的数据映射到javabean的private变量中,当然javabean中必须包含getter和setter函数(有很幸运,很多的开发工具可以自动生成,又减少了工作量)。下面是一个示例。
       
<jsp:useBean id="prof" scope="page" class="register.Profile" />
<jsp:setProperty name="prof" property="*" />
       我们只要表单的action页面中,直接插入以上代码(这些代码就不用解释了吧),就可以将表单中的数据映射到register.Profile这个javabean中,所以我们可以在javabean中实现业务逻辑,譬如数据的插入、修改、删除等。从而可以减小甚至消除JSP中的java代码量。
 (3)MVC模式
     上面提到的JSP/JavaBean与MVC模式很接近,但是还有很多差别。前者,我们可以看出,在javabean中有很多的逻辑代码,我们要控制页面的跳转,还是要在JSP中读取javabean中的某些标志,嵌入java代码来实现,这看起来显得有些笨拙。我们是否能在JSP和javabean中再加一层,专门来实现跳转即控制页面的输出呢?of course,这就是MVC的思想。
      Struts就是一个实现MVC模式的WEB开发框架,在Struts中用JSP作为Viewer,javabean继承自ActionForm来映射JSP表单数据,用继承自Action的类来实现Controller,而Model没有特殊定义,它可以是EJB,普通Bean或者Web服务,总之Model中集成了业务逻辑的实现,在Controller中去调用,完成后Controller控制显示页面(jsp文件)。
     这样一来,是不是业务流程非常的清晰?

     下面我们付诸实践,实现一个用户注册的简单实例!

posted on 2005-05-03 09:35 soochow_hhb 以java论成败 以架构论英雄 阅读(1572) 评论(2)  编辑  收藏 所属分类: Struts

评论

# re: Struts学习心得之Struts流程篇(2)   回复  更多评论   

期待看到下一篇~~
我正在学习ing
2005-05-18 10:44 | Zero

# re: Struts学习心得之Struts流程篇(2)   回复  更多评论   

好的。。。有点收获
2006-08-23 10:41 | 李志华

只有注册用户登录后才能发表评论。


网站导航: