1.划分MVC各个功能角色,应该放在具体环境中来讨论,在一个这个J2EE应用中,M应该是持久层数据,V与C应该是web层的;而单独在web层来谈MVC,M应该是FormBean,V应该是JSP,C是action.
2.对于C的来说,应该是Action,起到控制器的作用,而不是ActionServlet,为什么呢?我认为这个控制器应该是控制V与C的,根据M的结果选择V来显示,关键一点应该是,很多时候这不是一次处理就结束的,一个M-V-C可能根据处理结果跳到别的M-V-C循环处理.最后的结果可能是经由好几个M-V-C才完成一个完整的业务处理.
3.我想对于Struts来说,正确的MVC划分应该是M:FormBean,V:JSP,C:Action,而ActionServlet是分发器.分发器的作用是把一个请求分发给那个M-V-C处理,至于各个M-V-C之间的链接关系是由其自己来进行跳转,也可以由分发器来进行跳转,只是现在流行的框架都使用把分发功能写在框架中了,当然可以扩展这个点了,不过,好像很少需要这样做.
2.对于C的来说,应该是Action,起到控制器的作用,而不是ActionServlet,为什么呢?我认为这个控制器应该是控制V与C的,根据M的结果选择V来显示,关键一点应该是,很多时候这不是一次处理就结束的,一个M-V-C可能根据处理结果跳到别的M-V-C循环处理.最后的结果可能是经由好几个M-V-C才完成一个完整的业务处理.
3.我想对于Struts来说,正确的MVC划分应该是M:FormBean,V:JSP,C:Action,而ActionServlet是分发器.分发器的作用是把一个请求分发给那个M-V-C处理,至于各个M-V-C之间的链接关系是由其自己来进行跳转,也可以由分发器来进行跳转,只是现在流行的框架都使用把分发功能写在框架中了,当然可以扩展这个点了,不过,好像很少需要这样做.