java web的三层架构:
- 表现层(SpringMVC)
- 业务层(Spring)
- 持久层(Hibernate、MyBatis)
SpringMVC是表现层的框架,是一个MVC框架。
MVC的三部分:
- model
- view
- controller
常见的三种控制器:
- Servlet
- Struts2的action
- SpringMVC的controller
Spring MVC是Spring提供的轻量级web框架,是Spring的子框架,需要和Spring搭配使用。
Spring MVC的特点:
- 是Spring的一部分,可以很方便地使用spring的功能
- 可绑定用户输入,并提供了类型转换,可以将用户输入转换为需要的类型
- 内置了常见的校验器,可以校验用户输入
- 支持多种视图技术,比如JSP、Velocity、FreeMarker等
Spring MVC主要由以下几部分组成:
- DispatcherServlet
- 处理器映射 HandlerMapping
- 处理器适配器 HandlerAdapter
- 视图解析器 ViewResolver
- 视图 View(包括jsp、html等)
Struts2与SpringMVC的区别
- Struts2基于Filter,SpringMVC基于Servlet
- Struts2的action是多例的,SpringMVC的controller是单例的
- Struts2的action线程安全、但速度慢(因为action是多例的),SpringMVC的controller速度快、但线程不安全(因为controller是单例的)
- Struts是基于属性的封装,用action的属性来接收请求参数;SpringMVC是基于方法的封装,用controller的业务方法的参数来接收请求参数