什么是MVC
MVC 是模型(Model) 视图( View ) 控制器(Controller)的简写,是一种软件设计规范
而SpringMVC 是spring的一个框架,实际上就是spring的一个模块,专门是做web开发的
SpringMVC 底层用的是Servlet
SpringMVC 中有一个对象 是DispatcherServlet 它负责接受用户的所有请求,用户把请求给了DispatcherServlet 之后,DispatcherServlet 把我们请求转发给我们的Contorller对象 最后Contorller对象去处理请求
DispatcherServlet 是个中央调度器,DispatcherServlet 在创建的过程会同时创建springmvc的容器对象,读取sprigmvc的配置文件,把配置文件中的对象创建好,当用户发起请求可以直接的使用对象
执行流程
1 用户发起请求
↓
2 然后到服务器(比如说tomcat服务器) 服务器读取web.xml文件中的url地址
(就是那个servlet-mapping) 看它的请求是给谁的,(就是url上面的name)
↓
3 根据名字 会到dispatcherservlet中 然后中央调度器根据它里面写的配置文件位置 找到配置文件,并读取它
↓
4 然后配置文件里一般会有扫描包的,组件扫描器
↓
5 扫描器 扫描路径下的包 创建 并读取对象
↓
6 读取对象后,就会找到@XXXMapper()路径下符合用户请求的方法
↓
7 找到后 中央处理器就会把请求转发到对应的方法中
↓
8 框架执行方法,把得到的ModeAndView模型视图进行处理,转发到对应的页面中
有时候我们用post提交中文时 可能会乱码,所以要去web.xml 中注册声明过滤器解决post请求乱码问题 用method来设置提交方式
springmvc返回值;
String:跳转到指定视图文件名
Model:只是用来传输数据的,并不会进行业务的寻址
ModelAndView: 即跳转资源 也可以传递数据.
package com.mumu.config;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HelloSpringMvc {
@RequestMapping(value = "/some")
public ModelAndView doSome(){
ModelAndView mv=new ModelAndView();
// 添加值的操作
mv.addObject("msg","欢迎使用springmvc做web项目");
mv.addObject("fun","执行dosome方法");
//指定要执行的视图的完整路劲
mv.setViewName("show");
return mv;
}
}