Spring MVC
1. Spring MVC是什么
1.1 基本概念
SpringMVC是一个基于MVC模式的WEB表现层框架,它解决WEB开发中常见的问题(参数接收、文件上传/下载、表单验证、国际化、等等),使用非常简单,SpringMVC作为Spring中的一个模块,可以与Spring无缝集成,它是一个纯正的servlet系统,这也是它相比其他MVC框架所具有的优势。
1.2 前端控制器-核心
SpringMVC的核心控制器用于Web层核心功能的处理以及在所有控制器执行之前,所有的WebMvc框架都采用了这种方式,而在SpringMVC中使用的是以DispatcherServlet为核心控制器.
DispatcherServlet核心控制器会拦截匹配的请求,把拦截下来的请求,依据相应的规则分发到目标Controller来处理。
1.3 基本配置
1.在基于拥有Spring开发环境的情况下,导入SpringMVC必须的jar包spring-webmvc和spring-web。
2.在web.xml配置文件中配置核心控制器
<servlet>
<servlet-name>DispatcherServlet</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>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<!-- / :拦截所有,但是不包含jsp...其他静态资源如:.css,.js等需要用例外的配置进行放行 (主要用于前台系统),通过/拦截扩展性更好,方便使用RESTful风格进行开发-->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
- 新建Controller控制器,SpringMVC中的控制器有一定规范,要求实现Controller接口或子接口。
- 配置我们的Controller控制器,在application.xml添加包扫描器和支持注解
<mvc:annotation-driven/>
<context:component-scan base-package="springmvc.controller"></context:component-scan>
- 最后通过在类上添加注解@Controller和方法上@RequestMapping注解来完成映射关系,因为SpringMVC支持全注解模式。
1.4 注意事项
- 接受前端参数的方法形参名需要和前端传入参数相同
- 若形参名称不一致使用@RequestParam(“前端参数名称”)String 形参名
- 若参数转换失败会报出400错误
- 如果是多个参数通常通过建立于传入参数相对应的实体类来进行接收
- 若使用RESTful则接收参数格式为 @PathVariable(“id”)Long id
- 如果出现浏览器出现400则代表参数类型不匹配
1.5 参数传递
- 通用ModelAndView方式
- 使用Model方式
1.6 总结
通过Spring MVC可以解决传统MVC 模式的许多问题如:1。web.xml 臃肿,2.实现forward和redirect不方便,3.Servlet职责不单一。