1、基于servlet/jsp模式
2、控制器不再需要继承其它类,只需要用@Controller注解
3、不需要有formbean之类的对象了,方法参数中需要的页面值可以通过@RequestParam直接从页面请求中获得
4、控制器方法签名定义灵活
5、返回页面直接在方法中指定,可以是String,也可以是其它的,例如:ModelAndView或void等
6、性能优秀。和struts1相当,性能高于struts2
请求 |
| 前端控制器 |
| 应用控制器 |
| 业务组件 |
前端控制器:负责接收客户端请求,根据请求路径访问应用控制器。将页面参数填充实体Bean。负责转发页面和对标签类支持
应用控制器: 负责产生业务组件,调用业务组件方法完成业务,返回需要转发的路径。
Spring MVC环境搭建:
默认情况下:DispatcherServlet会寻找Web-INF下,命名规范为[servlet-name]-servlet.xml文件。
也可以通过init-param改变默认配置
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>