就我个人的理解,有如下几点:
1. 目前web设计要采用MVC的结构进行,在不使用任何框架的情况下,javabean充当M,jsp充当V,servlet充当业务控制器C
2. 现在的J2EE很多实用SSH的结构,抛开H,这里只请教2个S,即spring3.0和struts2.1
3. spring是一个实现了MVC结构的框架,struts也是一个实现了MVC的框架
我的问题是:
1. struts作为一个MVC框架,M/V/C的实现分别是什么?我个人的理解是:
a) V 由Jsp负责实现,还可以通过struts的jsp标签等方式访问action的属性
b) C 由Action负责实现,action作为业务控制器,完成业务分流的作用
那么M呢?模型由谁来实现?是普通的javabean吗?请大侠指教。
spring的M、V、C又分别指代什么?
2. servlet、filter、listerner、interceptor是什么关系?同一层级还是包含的关系?
我个人的理解是servlet是一种技术概念,而filter、listerner、interceptor这些都是一些特殊的servlet,包括struts的本质也是一种特殊的servlet,因为它的本质是一个filter,不知道我这样的理解对不对?是不是使用了struts框架,就很少会为业务逻辑开发具体的servlet了?请大侠指教。
3. 既然spring和struts都实现了MVC框架,那为什么二者经常被组合在一起使用,岂不是功能都重复了吗?是因为二者的侧重点不一样吗?我看到的spring用的最多的是IoC功能,javabean管理和注入等,主要是侧重M的,看到的struts则主要是侧重C,即action完成业务逻辑控制,二者组合使用是因为我上面讲的这种侧重点不同吗?
4. 我在李刚的J2EE 轻量级SSH那本书上(红色封面的那个)提到有MVC层/中间层/持久层这种说法,我想问一下MVC层和中间层有什么区别?具体有哪些实现的技术?