SpringMVC
初始SpringMVC
在 Spring 的基本架构中,红色圈起来的 Spring Web MVC ,也就是本系列的主角 SpringMVC,它是属于Spring基本架构里面的一个组成部分,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面,所以我们在后期和 Spring 进行整合的时候,几乎不需要别的什么配置。
Spring+MVC=SpringMVC : 在spring的基础上,对MVC思想的一个实现,是一个MVC框架
SpringMVC: 对servlet做的一个封装,换成controller层
相对于struts2,SpringMVC和Spring结合的更加完美
SpringMVC初配置
1. 复制项目到Test_Shop_SSM,添加一个jar包
spring-webmvc-4.1.0.RELEASE.jar
2. 配置web.xml
只有在满足地址后缀 .do,才会进入SpringMVC框架
3. 添加,配置SpringMVC的主配置文件 springmvc-servlet.xml
4. 创建controller包,创建一个普通的类ClientController,添加对应注解
与视图解析器,拼接前置和后置地址为/success.jsp
5. 修改login.jsp 的登录跳转地址
地址后加上匹配规则 .do,进入SpringMVC框架
工作流程:
1. 加载web.xml,读取配置,启动SpringMVC
2. 发送URL请求,匹配规则*.do,实例化SpringMVC的Servlet对象
3. 扫描注解路径,寻找标记注解@Controller层
4. 根据URI请求的地址,匹配方法上的注解@RequestMapping的值
5. 执行方法
6. 解析返回值,匹配默认的视图解析器,拼接成一个跳转的URI(默认转发)
参数收集
1. 内置对象 HttpServletRequest (了解)
2. 方法参数收集(常用)
前台的key值对应到参数值,就可以获取到value
3. 方法对象收集 (常用)
3.1 后台执行无参构造方法,创建对象
3.2 根据前台的key,调用对应的set/get方法完成赋值
SpringMVC乱码处理
在web.xml添加Spring过滤,处理所有请求地址,转译字符编码UTF-8
模拟完成SSM框架下登录功能
1.Spring家族体系 Spring AOP:为Spring容器管理的对象提供了对面向切面编程的支持; Spring DAO:该层封装了对数据库的访问,并且处理了其抛出的错误消息,同时还基于AOP模块提供了事务管理; Spring ORM:Spring支持多种ORM框架,简化了数据库操作。 Spring Web :Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。 Spring MVC :MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。
2.SpringMVC框架定义 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。 Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。
3.SpringMVC执行流程 首先用户发送请求到前端控制器,前端控制器根据请求信息(如 URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分; 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在 Spring Web MVC 中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个 ModelAndView(模型数据和逻辑视图名); 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染; 前端控制器再次收回控制权,将响应返回给用户 4.视图解析器 在开发中,视图通常就是JSP、Velocity 等。Spring 默认提供了多种视图解析 器,比如,我们可以使用最常用解析器InternalResourceViewResolver 来查找 JSP视图(与之相对应的视图类为InternalResourceView)。 通常,一- 个视图解 析器只能查找- - -个或多个特定类型的视图,在遇到Spring 不支持的视图或者我 们要自定义视图查找规则的情况下,我们就可以通过扩展Spring 来自定义自己 所需的视图解析器。目前,视图解析器都需要实现接口 org. springframework.web.servlet.ViewResolver,它包含方法 resolveViewName,该方法会通过视图名查找并返回Spring 视图对象。 |