转自:http://blog.csdn.net/tjzero_sapce/article/details/3745345
MVC 是一种设计模式。他的目的就是将 模型(其实也就是 业务逻辑) 和试图 (页面展示) 分离 , 使模型和视图可以独立修改,而不会影响到对方 . 大多数软件架构设计时都采用这一模式 .
使用MVC模式有很多好处. 当一个通过浏览器浏览使用的系统 想要开发手机版本的时候 , 只需要重新开发视图, 模型部分定义的业务逻辑不用修改就可以重用 . 很多软件需要同时推出 B/S 和 C/S架构版本 , 采用MVC模式, 模型部分可以完全重用 , 开发不同的视图即可 .
在MVC中,M指的是 Model(模型) , 表示程序处理业务逻辑的部分; V指的是( View) 视图层 , 表示程序负责展示数据/获得用户请求的部分 ; C指的是 Controller (控制器) ,负责从V接收用户输入 , 调用M , 返回数据到V . 我们可以看到 C 在MVC中起到类似中介的作用, 从而保证 M 和 V 不会直接交互, 从而保证一方更改时另一方不用跟着更改 .
在前面Servlet的学习中,Servlet充当控制器的角色, 接收用户的请求 , 并调用实现业务逻辑的JavaBean (充当模型角色) , 然后由Servlet将执行结构返回给 JSP视图 .
MVC框架实现的核心是控制器 . 我们的控制器Controller类基于 Servlet技术实现 , 在配置Servlet访问路径时可以配成 *.do ,表示只要是以 ". do " 结束的请求就会派发到 Controller .
<servlet-mapping>
<servlet-name> MyController</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
所有以 .do 结尾的请求全部派发到Controller处理 ; Action接口和Controller接口构成了自定义框架的MVC部分.
<action> 节点下的<forward> 子节点定义了该Action 可能转发到的页面,对应每一个页面有一个"逻辑名",在Action代码中, 我们只通过这个逻辑名引用将要转发到的页面, 也就是说Action是负责决定跳转到哪一个JSP页面来显示结果 .
①用一个容器(拦截器或者servlet类)接受请求
②分割请求路径:得到请求访问类以及访问方法的标示字符串;
③通过字符串获得Action类对象以及方法
④执行方法:可以通过获得的返回值确定跳转的路径以及跳转方式。
⑤OVER