先给你概念的东西
Servlet的演变:在常规的 JSP,Servlet,JavaBean三层结构中,JSP实现View的功能,Servlet实现Controller的功能,JavaBean实现Model的实现。 在Struts中,将常规情况下的Servlet拆分与ActionServlet、FormBean、ActionBean三个部分。ActionServlet配合Struts-config.xml,专职完成页面导航,而不再负责具体的数据获取与相应逻辑,这两部分功能由FormBean和ActionBean来完成。Struts优缺点 优点: Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。 除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。 关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。 缺点: Taglib是Struts的一大优势,但对于初学者而言,却需要一个持续学习的过程,甚至还会打乱你网页编写的习惯,但是,当你习惯了它时,你会觉得它真的很棒。 Struts将MVC的Controller一分为三,在获得结构更加清晰的同时,也增加了系统的复杂度。 Struts从产生到现在还不到半年,但已逐步越来越多运用于商业软件。虽然它现在还有不少缺点,但它是一种非常优秀的J2EE MVC实现方式,如果你的系统准备采用J2EE MVC架构,那么,不妨考虑一下Struts。Struts实施经验: 1、基于Struts架构的项目开发,首先需要有一个很好的整体规划,整个系统中包括哪几个模块,每个模块各需要多少FormBean和ActionBean等,而且最好有专人负责Struts-config.xml的管理。开发基于Struts的项目的难点在于配置管理,尤其是对Struts-config.xml的管理 2、如果你的项目非常紧,并且项目组中又没有富有经验的Struts开发人员,建议不要冒然采用Struts。Struts的掌握需要一个过程,对于一个熟练的JSP程序员,自学大概需要半个月左右的时间。如果结合titls,则需要更长的时间 3、如果你在网页中大量运用taglib,那么你的美工将做出部分牺牲。当你结合Tiles,功能增强的同时,这种牺牲尤为明显。当然,你对功能和美观的取舍由你自己决定 4、Taglib是一个好东西,但灵活运用它却需要一个过程,如果你不想在Taglib上花太多的时间,那么只需理解与FORM有关的几个标记,其它的标记就放着吧,以后再看,先去研究ActionServlet和Struts-config.xml,你会觉得很有成就感 5、Struts是否只适合于大型项目呢?No!Struts适合于各种大小的项目,当然,对于大型项目,它所体现出来的优势更加明显。

解决方案 »

  1.   

    再我个人的总结
    利用struts实现mvc模式。
    总结:
    让结构清晰,在建立项目的时候,就将模式分清楚,比如印刷厂系统,我理解下来,
    M:就是所编写的bean文件,里面将所有将用到的信息实现set,get函数,清楚模块,可以将它建立在同一个功能模块的model文件夹下面。
    (比如:contract\src\com\printery\shengchan\model)
    而建立连接数据库作为独立的一个模块,单独建立,要连接时,直接调用这个包就可以了。
    (比如:contract\src\com\printery\conn)
    V:就是显示层模块,这部分主要作用是将页面上所用到的信息,通过severlet和页面实现交互,传递和获取信息,在struts中,主要要有一个form和一个action,将它们建立在一个view文件夹下面。
    (比如:contract\src\com\printery\shengchan\web)
    里面的form是继承bean里的所有函数,同样也可以继承其它包里的bean,主要看你页面上所需要的信息有哪些,就在这个form中建立哪些函数。在action中主要是对数据库的操作,以及实现到c控制部分的跳转。
    C:就是控制模块,主要是对struts-config.xml的配置。Struts中,页面上需要什么信息就建立对应信息的from,通常一个action对应一个form。建立struts项目,将源文件按层次放置,模型放到model里,关于view的源文件放到web里。关于struts bean的命名
    model里定义一个低层的bean对象(对应表中所有的字段)。
    web(view)里,一个Action对应一个bean,比如:insertAction---〉insertForm,也就是需要提交表中的哪些字段,这里的form和action就对应这些字段进行操作。
    1、你的JSP表单提交到哪个Action,它由哪个Action处理。
    2、Action中转发到哪个JSP,输出时就转到了那个JSP。<action path="/ProcessLogin" type="com.printery.user.web.LoginAction"
    name="loginForm" scope="request" validate="true" input="/Login.do">
    每个标签参数是什么含意:
    path指在struts-config.xml里配置的路径type指实现的action(servlet), name指action对应使用的form通常一个action对应一个form在struts-config.xml里有具体写法,scope为提交方式,validate表示是否要检查表单元素值的合法性,input表示跳入这个action是那个uri做的,以便出错返回该页面,忘了说了path也是你在网页里调用的应用名,例如<form action="/ProcessLogin.do">
    <form action="ProcessLogin.do?opr=XXX"></form><jsp:useBean id="Contractsubmit1Form" class="com.printery.user.web.Contractsubmit1Form" scope="request" >
        <jsp:setProperty name="Contractsubmit1Form" property="*" />
    </jsp:useBean>//////////////////////////struts功能盲点
    1,struts的分页
    2,struts的动态表单提交(插入数据库生成多条记录)
    3,action中如何返回一个参数
    4,
      

  2.   

    It's simple. ActionServlet: 服务的主接入口,就是当你发送一个请求给*.do文件时,就将进入ActionServlet的范围,然后再根据具体的请求,转发到具体的Action。
    Action:根据请求,调用包含应用逻辑的JavaBean,然后把数据保存为FormBean格式,保存在各种作用域范围内(page,request,session,app)
    ActionForm:将各种表单数据保存到ActionForm里面,然后由Action负责提取,一方面保证了数据的完整性,防止非法数据的提交,一方面可以作为数据,由View层负责显示
      

  3.   

    zhz586(最终幻想) 和 chn217(天涯)分析得很透彻,值得读,另外,Actionform,Action,FormBean之间的关系,及分页等,可参考我的一些经验:http://dev.csdn.net/user/kui
    《Struts程序各文件之间的关系(1) 》
    《如何在Struts 数据库应用程序中实现分页显示(1) 》
      

  4.   

    也没有什么说的.基础很重要.这里有些网址.都是和struts有关介绍的.我的起步也是从这里开始的.
    --------------struts资源--------------------
    http://dev.csdn.net/user/lzasp800
    http://www.uml.org.cn/j2ee/j2ee.asp
    http://champion.ewuxi.com/old/strutsacl/1.htmhttp://software.ccidnet.com/pub/disp/Article?columnID=732&articleID=26361&pageNO=1http://tech.ccidnet.com/pub/column/c1078.html
    http://www.justjsp.com/main/sort.php/9
    http://www.matrix.org.cn/subject/struts/website_forum.htmhttp://www.reumann.net/do/struts/main
    http://www.csdn.net/Develop/list_article.asp?author=kui&myclassid=0&myclassName=
    http://www.myeclipseide.com/ContentExpress-display-ceid-15.html
    http://www-900.ibm.com/developerworks/cn/wsdd/techjournal/0404_latif/0404_latif.shtml 
    http://www.hibernate.org.cn/62.html
    http://search.csdn.net/Expert/topic/2228/2228055.xml?temp=.5937464
      

  5.   

    To: monkeyhjl(爬上墙头等红杏)