本帖最后由 q455295165 于 2014-05-14 19:31:14 编辑

解决方案 »

  1.   

    严格来说,SSH是三层架构的一种实现方式, 并不代表strtus是其中的某一层,只能说SSH组合起来搭建了三层架构,比如Spring ,在三层中没有定义地位,无法说他是其中的某一层,但是可以将三层架构定义出来的层组合起来。MVC只是一种模式,而SSH只是实现这种模式的一种组合方式
      

  2.   

    一、
    1、struts2不仅是mvc的表现层,但他主要为javaweb开发提供了辅助与简化,模型层(比如表单)、控制层(比如action)都涉及到了,jsp中常用的struts2Tag,这个也算是一种model。
    2、pojo是数据库对象关系映射模型,用对象的方式表述一张数据库表,恰恰不是业务,业务模型可称之为bo,而不是po或pojo。
    3、mvc没那么简单,更没那么复杂,一个简单的servlet+jdbc的程序,你的jsp,就是view,你的servletClass,就是control,你写的jdbcUtil,或业务模型,就是model,mvc不是仅“针对表现层”。
    二、
    1、你说的service算是业务逻辑层,你的理解基本正确,一张表对应一个pojo,对应一个dao,一个dao,负责一张表最基础最简单的增删改查,面向的是基础数据库操作,而service,是面向业务逻辑,根据业务需要,顺序调用各种组件或dao完成需求,正如你所说,用户名密码输入合法性,可以放在service里做,做完过关,再去调dao查数据库,这是个简单的例子。
    三、
    1、控制反转,即打断使用者与工具之间的连接关系,将这个关系转由第三方来控制,达到解耦的目的,工厂模式下,这个第三方就是工厂,spring下,这个第三方就是spring。好处是统一管理组件实例的创建,在修改时,便于修改,在扩展时,不必修改老代码。
    2、不理解的话,可查百度,再不理解,那就先别纠结,干其他事去,一两年后再回来看,一下子就领悟了。
    四、
    1、举个ssh的例子,你写的pojo、bo、dao、service,或者struts的form,这些都是model,程序的关键点在于数据和处理流程,而model,则是模拟了现实环境,用对象的方式表述、管理了这些数据。可以思考下,常见的web应用里,肯定有登录账号及其账户信息这些资讯,如果你不用一个model来表述,会怎样?是不是感觉挺乱?