日期:2014-05-17  浏览次数:20863 次

初学mvc模式,一直弄不懂一个问题,求解答
小弟最近开始学struts2,但是对于mvc的不是很明白,大神能否解释一下mvc的流程。
假如我要以mvc模式实现一个登陆的功能,当我点击登陆的时候,是从哪一层开始的?
下面是我的理解,请指出错误的地方教一下。
登陆(V),通过(C)发送数据到(M)检验,从(M)返回检验结果到(V)?

有没有更好的例子解释mvc各层的作用。
谢谢各位。

------解决方案--------------------
MVC主要是为了完成表现层、控制层、业务层之间的解耦.请求先交给C,然后C负责调配交给M,M执行完毕将数据交给V,在V中完成数据替换。如果拿Strut2做个例子,请求数据从浏览器提交,先交给web.xml配置的中心filter,这个filter再根据XML配置,交给相应的Action(当然中间会进行一系列的类型转换、校验、拦截器等),Action再调用业务方法,然后再交给JSP(或者是Velocity、Freemarker)等。然后这些视图工具拿到视图回填数据(数据实际上是Struts2的一些拦截器通过反射从Action中拿到的成员变量),最后得到的是替换后的字符串或者流,然后再将其返回给客户端浏览器(实际上底层调用的就是servlet里函数,只不过Struts2帮我们封装好了)。C主要负责中心调配、M主要执行业务得到最终数据、V主要是根据模板和数据得到最后的html格式的数据。