1.springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。
2.springmvc是一个基于mvc的web框架。
3.springmvc 表现层:方便前后端数据的传输
4.Spring MVC 拥有控制器,作用跟Servlet类似,接收外部请求,解析参数传给服务层
5.MVC是指,C控制层,M模块层,V显示层这样的设计理念,而SSM框架里面SPRING MVC本身就是MVC框架,作用是帮助(某种意义上也可以 理解为约束)
Springmvc架构原理解析
- 发起请求到前端控制器(DispatcherServlet)
- 前端控制器请求HandlerMapping查找 Handler,可以根据xml配置、注解进行查找
- 处理器映射器HandlerMapping向前端控制器返回Handler
- 前端控制器调用处理器适配器去执行Handler
- 处理器适配器去执行Handler
- Handler执行完成给适配器返回ModelAndView
- 处理器适配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一个底层对象,包括 Model和view
- 前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp)
- 视图解析器向前端控制器返回View
- 前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域
- 前端控制器向用户响应结果
- 首先,导入SpringMVC需要的jar包。
org.springframework spring-webmvc${spring.version} jstl jstl1.2 taglibs standard1.1.2 - 添加Web.xml配置文件中关于SpringMVC的配置
Archetype Created Web Application contextConfigLocation classpath*:applicationContext*.xml org.springframework.web.context.ContextLoaderListener org.springframework.web.util.IntrospectorCleanupListener encodingFilter org.springframework.web.filter.CharacterEncodingFilter trueencoding UTF-8 encodingFilter /* SpringMVC org.springframework.web.servlet.DispatcherServlet contextConfigLocation WEB-INF/spring-mvc.xml 1 trueSpringMVC / - 在WEB-INF目录下添加springmvc-servlet.xml配置文件
- 在WEB-INF文件夹下创建名为jsp的文件夹,用来存放jsp视图。创建一个hello.jsp,在body中添加“Hello World”。
5.建立包及Controller,
6.编写Controller代码 TestController
@Controller
public class TestController {
@GetMapping("test")
public String hello(String name){
System.out.println("controller name= "+name);
return "redirect:/hello";
}
@RequestMapping("hello")
public String toHello(){
return "hello";
}
}
注: 示例中用到的注解:
@Controller:该注解在springmvc中用于标记一个控制器,类似的注解还有@RestController,不同的是@RestController专门用于标记一个rest风格的接口,相当于@ResponseBody + @Controller合在一起的作用。
@RequestMapping:该用于标记请求路径,在有些参考资料中也称之为服务端点。该注释可以用在方法上也可以用在类上。
7.启动服务器,键入 http://localhost:8080/项目名/mvc/hello
三、. 常用注解- @Controller:用于标识处理器类
- @RestController注解相当于@ResponseBody + @Controller合在一起的作用
- @RequestMapping:请求到处理器功能方法的映射规则,可定义到类和方法,常用参数:value、method
- @RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定,常用参数:value、required、defaultValue, (required设置成false的参数类型必须是引用类型,因为基本数据类型是不能为null的)
- @ModelAttribute:请求参数到命令对象的绑定。
可用@ModelAttribute标注方法参数,方法参数会被添加到Model对象中(作用:向视图层传数据)
可用@ModelAttribute标注一个非请求处理方法,此方法会在每次调用请求处理方法前被调用(作用:数据初始化)
可用@ModelAttribute标注方法,方法返回值会被添加到Model对象中(作用:向视图层传数据) - @RequestBody:用于目前比较流行的ajax开发的数据绑定(即提交数据的类型为json格式)



