网站建设战略合作方案,应聘网站运营建设面试,建网站怎么样才能流畅,外贸怎么做站外推广一 SpringMVC框架 目录一 SpringMVC框架1.什么是MVC2.SpringMVC概述3.SpringMVC常见开发方式4.SpringMVC执行流程5.SpringMVC核心组件介绍6.快速构建Spring MVC程序✅作者简介#xff1a;Java-小白后端开发者 #x1f96d;公认外号#xff1a;球场上的黑曼巴 #x1f34e;个…一 SpringMVC框架 目录一 SpringMVC框架1.什么是MVC2.SpringMVC概述3.SpringMVC常见开发方式4.SpringMVC执行流程5.SpringMVC核心组件介绍6.快速构建Spring MVC程序✅作者简介Java-小白后端开发者 公认外号球场上的黑曼巴 个人主页不会飞的小飞侠24 个人信条谨 · 信 当前专栏高级内容 本文内容 SpringMVC框架 更多内容点击 小飞侠的博客欢迎大家 1.什么是MVC
MVC 设计模式一般指 MVC 框架MModel指数据模型层业务模型层VView指视图层CController指控制层。使用 MVC 的目的是将 M 和 V 的实现代码分离使同一个程序可以有不同的表现形式。
MVC 属于架构模式的一种所谓架构就是如何设计一个程序的结构。MVC 将程序结构划分为三层每一层都对外提供了可供上层调用的接口既能维系三层之间的联系也能保持相对的独立性。
这种将业务逻辑、数据和界面分离的代码组织形式降低了模块间的耦合度有利于日后的维护与扩展。
2.SpringMVC概述
springmvc是基于spring Framwork衍生出来的一个mvc框架主要解决原有mvc架构中控制器Controller的问题常见的控制器有servletstruts2等控制器的核心功能是根据用户的请求调用对应业务功能然后依据业务处理的结果控制程序的运行流程。
servlet实现控制器存在的问题
1.接收客户端请求参数时存在代码的冗余
2.只能接收字符串类型的数据其它数据类型需要手动的转换
3.无法接收对象类型的参数
4.调用业务对象存在耦合 new
5.流程跳转存在耦合路径耦合视图耦合
3.SpringMVC常见开发方式
1.传统的开发方式
通过作用域(request,session)实现数据的传递
通过视图技术进行视图的渲染jsp thymleaf freeMarker
2.前后端分离开发方式
多种新的访问方式get 、post 、put、 delete
Restful风格的访问
4.SpringMVC执行流程
Spring MVC 框架是高度可配置的包含多种视图技术例如 JSP、FreeMarke和 POI。Spring MVC 框架并不关心使用的视图技术也不会强迫开发者只使用 JSP。
Spring MVC 执行流程如图 所示
4.1 SpringMVC 的执行流程如下:
用户点击某个请求路径发起一个 HTTP request 请求该请求会被提交到 DispatcherServlet前端控制器由 DispatcherServlet 请求一个或多个 HandlerMapping处理器映射器并返回一个执行链HandlerExecutionChain。DispatcherServlet 将执行链返回的 Handler 信息发送给 HandlerAdapter处理器适配器HandlerAdapter 根据 Handler 信息找到并执行相应的 Handler常称为 ControllerHandler 执行完毕后会返回给 HandlerAdapter 一个 ModelAndView 对象Spring MVC的底层对象包括 Model 数据模型和 View 视图信息HandlerAdapter 接收到 ModelAndView 对象后将其返回给 DispatcherServlet DispatcherServlet 接收到 ModelAndView 对象后会请求 ViewResolver视图解析器对视图进行解析ViewResolver 根据 View 信息匹配到相应的视图结果并返回给 DispatcherServletDispatcherServlet 接收到具体的 View 视图后进行视图渲染将 Model 中的模型数据填充到 View 视图中的 request 域生成最终的 View视图视图负责将结果显示到浏览器客户端
5.SpringMVC核心组件介绍
Spring MVC 涉及到的组件有 DispatcherServlet前端控制器、HandlerMapping处理器映射器、HandlerAdapter处理器适配器、Handler处理器、ViewResolver视图解析器和 View视图。下面对各个组件的功能说明如下。
1DispatcherServlet
DispatcherServlet 是前端控制器从图 1 可以看出Spring MVC 的所有请求都要经过 DispatcherServlet 来统一分发。DispatcherServlet 相当于一个转发器或中央处理器控制整个流程的执行对各个组件进行统一调度以降低组件之间的耦合性有利于组件之间的拓展。
2HandlerMapping
HandlerMapping 是处理器映射器其作用是根据请求的 URL 路径通过注解或者 XML 配置寻找匹配的处理器Handler信息。
3HandlerAdapter
HandlerAdapter 是处理器适配器其作用是根据映射器找到的处理器Handler信息按照特定规则执行相关的处理器Handler。
4Handler
Handler 是处理器和 Java Servlet 扮演的角色一致。其作用是执行相关的请求处理逻辑并返回相应的数据和视图信息将其封装至 ModelAndView 对象中。
5View Resolver
View Resolver 是视图解析器其作用是进行解析操作通过 ModelAndView 对象中的 View 信息将逻辑视图名解析成真正的视图 View如通过一个 JSP 路径返回一个真正的 JSP 页面
6View
View 是视图其本身是一个接口实现类支持不同的 View 类型JSP、FreeMarker、Excel 等。
以上组件中需要开发人员进行开发的是处理器Handler常称Controller和视图View。通俗的说要开发处理该请求的具体代码逻辑以及最终展示给用户的界面
6.快速构建Spring MVC程序
搭建步骤如下 创建 Web 应用并引入 JAR 包 spring-webmvc Spring MVC 配置在 web.xml 中配置 Servlet创建 Spring MVC 的配置文件 servletservlet-namespringmvc/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:springmvc-config.xml/param-value/init-paramload-on-startup1/load-on-startup/servletservlet-mappingservlet-namespringmvc/servlet-nameurl-pattern//url-pattern/servlet-mapping6.1 springmvc配置文件
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:contexthttp://www.springframework.org/schema/contextxmlns:mvchttp://www.springframework.org/schema/mvcxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd!--注解实现mvc--!-- 自动扫描包实现支持注解的IOC --context:component-scan base-packagecn.kgc.spring /!-- 支持mvc注解驱动 注册处理器映射器 注册处理器适配器 参数的类型转换 页面跳转 响应处理 --mvc:annotation-driven /!-- 视图解析器 --beanclassorg.springframework.web.servlet.view.InternalResourceViewResolveridinternalResourceViewResolver!-- 前缀 --property nameprefix value/view/ /!-- 后缀 --property namesuffix value.jsp //bean
/beans** 6.2 创建 Controller处理请求的控制器**
Controller
RequestMapping(/Hello)
public class HelloWorld {RequestMapping(/Say.do)public String SayHi(Model model) {return index;}
}6.3 创建 View使用 JSP 作为视图
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/title
/head
bodyhello springmvc
/body
/html6.4部署运行
RequestMapping详解
1.一个方法匹配多个路径
RequestMapping(value{hello1.do,hello2.do})public String test01(){System.out.println(hello);//跳转路径 默认使用转发 会经过视图解析器return index;}2.指定方法接收的请求方式
RequestMapping(value hello1.do,method RequestMethod.GET)public String test01(){System.out.println(hello GET);//跳转路径 默认使用转发 会经过视图解析器return index;}3.一个方法指定多种类型的请求 RequestMapping(value hello1.do,method {RequestMethod.GET,RequestMethod.POST})public String test01(){System.out.println(hello GET OR POST);//跳转路径 默认使用转发 会经过视图解析器return index;}