目录
Spring MVC是在使用Spring进行WEB开发时的轻量级控制器框架。
可以和Spring框架无缝整合(SpringMVC无法单独使用,所以一开始就是一个SS整合【Spring+SpringMVC】)。
运行效率远高于Struts2框架(主要原因之一是SpringMVC的Controller是单例的而Struts2的Action不是单例的)。
注解式开发可以更高效。
Struts2 与 SpringMVC 对比
# 简要步骤分析
1. 请求被DispatcherServlet接收。
2. DispatcherServlet使用RequestMappingHandlerMapping对象来把请求路径对应到某个Controller方法上。
3. DispatcherServlet使用RequestMappingHandlerAdapter对象来对请求参数进行解析,也传入相应的Controller方法中。
4. 根据Controller的不同返回值做不同处理,如果返回的是“页面逻辑名”(也可以称为“视图逻辑名”),则会交给InternalResourceViewResolver对象进行进一步处理。
org.springframework spring-core 4.3.2.RELEASE org.springframework spring-context 4.3.2.RELEASE org.springframework spring-context-support 4.3.2.RELEASE org.springframework spring-jdbc 4.3.2.RELEASE org.springframework spring-aop 4.3.2.RELEASE org.springframework spring-beans 4.3.2.RELEASE org.springframework spring-expression 4.3.2.RELEASE org.springframework spring-aspects 4.3.2.RELEASE org.springframework spring-web 4.3.2.RELEASE org.springframework spring-webmvc 4.3.2.RELEASE javax.servlet servlet-api 2.5 provided javax.servlet jstl 1.2
旧版本传统开发方式(了解即可,功能较少,不推荐使用):手动注册理器映射器、处理器适配器和视图解析器(SpringMVC三大组件)。
新版本标准开发方式(练环境搭建只练这个就行):使用mvc命名空间的注解驱动注册处理器映射器和处理器适配器,然后手动注册视图解析器。
另外,@RequestMapping还支持以下写法:
@RequestMapping
、@GetMapping
、@PostMapping
、@PutMapping
、@DeleteMapping
的value属性值为访问路径。
@RequestMapping
只做路径匹配,其他的会进行路径和请求方式的双重匹配(会在后面的课程详细讲)。无论以何种形式书写
@XxxMapping
的value属性值,Controller方法的访问路径永远是类的访问路径加方法的访问路径,访问路径一定是/
开头。
这一部分需要彻底记住!!!
Controller跳转到JSP
forward:return "页面逻辑名"
redirect:return "redirect:/xxx.jsp"
(redirect不会经过视图解析器,jsp路径要写全)
Controller跳转到Controller(无论被跳转到的Controller在什么位置,路径要写全)
forward:return "forward:/a/b"
redirect:return "redirect:/a/b"
如果要使用request作用域携带数据,必须是forward跳转。当A和B两个业务没有直接关系时,A跳转到B多数情况下是redirect。