SpringMVC框架学习总结
什么是MVC模式
M Model模型(JavaBean) V view视图(JSP/IMG) C Controller控制器(Action/Servlet)
C控制存在的目的:将视图和模型结合在一块
什么是SPRING MVC?
Spring MVC是基于MVC模式的一个框架,它解决WEB开发中常见的问题(参数接收、文件上传、表单验证、国际化、等等),而且使用简单,与spring无缝集成。
HelloWorld程序
1.导入相关的资源.
- 导入Spring核心的包
- 导入web相关的支持包.
- 日志相关
2.导入相关的配置文件application.xml(类似Struts2.xml)
name:代表前台访问的地址
class:对应的处理类>
3.编写核心类.需要实现接口.org.springframework.web.servlet.mvc.Controller
4.常见问题及解决方案
springMVC启动的时候默认的去WEB-INF中寻找配置资源.怎么修改?
contextConfigLocation
classpath:application.xml默认找的文件名为-serlvet.xml.
在第一次访问的时候去加载spring的配置文件.
希望在服务器启动的时候就去加载spring配置文件
URL映射的方式
全注解的方式
注解使用的步骤:
1.需要有一个注解.
2.把注解贴到某个地方.
3.需要扫描器去扫描注解.
回顾J2EE三层的注解:
表现层:@Controller
业务层:@Service
DAO持久层:@Repository
例如工具类:@Component
全注解的方式步骤:
1.导入AOP的包.
spring-aop-4.1.2.RELEASE.jar
2.需要在核心类上@Controller注解.
3.需要开启注解扫描
静态资源的处理
传参的方式
1.使用serlvet原生api来实现
2.前台需要传入的参数名和方法定义的形参名字一致(基于同名匹配规则)
当前台名称和后台形参名字不一致的情况,需要使用@RequestParam(“前台参数名”)来注入
3.使用模型传参.(前台参数名字需要和模型中的字段名一致.)
中文乱码问题
定义拦截器
基本步骤
1.定义拦截器类.需要实现接口org.springframework.web.servlet.HandlerInterceptor
2.编写对应的逻辑
3.将拦截器配置到主配置文件中.
大概图片描述
文件上传和下载
步骤
1.导入文件上传的相关jar包.
2.在application.xml中配置文件上传解析器.
3.编写核心类.
开发过程中遇到的问题及原因说明
需要配置文件上传解析器.
缺少文件上传的包
源码解析
HanderMapping 请求映射处理器:(说明书)
作用:根据不同的请求选择最合适的处理器(自己编写的控制器),请求映射处理器可以配置多个,谁最先匹配就执行谁。
[org.springframeworkaaa@qq.com5cfeb005, oraaa@qq.com54d647f5, aaa@qq.com400e5156]
HandlerExecutionChain处理执行链:
HandlerExecutionChain with handler [public org.springframework.web.servlet.ModelAndView springmvc1.AnnotationController.handleRequest(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.lang.Exception] and 1 interceptor
HandlerAdapter 处理器适配:(工具)
作用: 支持多种类型的处理器,如何来执行"处理器(控制器)";
[org.springframeworkaaa@qq.com47a034e7, aaa@qq.comcad168, orgaaa@qq.com2e7a32f3]
图片解释代码跳转
常考面试题
Spring MVC的执行流程
系统启动的时候根据配置文件创建Spring的容器,首先是发送Http请求到核心控制器DispatcherServlet,Spring容器通过映射器去找业务控制器,使用适配器找到相应业务类,在进行业务类的时候进行数据封装,在封装前可能会涉及到类型转换,执行完业务后使用ModelAndView进行视图转发,数据放在model中,用map传递数据进行页面显示。