简单了解SpringMVC常用组件作用解析
spring mvc的核心在于其流程,这是使用springmvc框架的基础,springmvc是一种基于servlet的技术,它提供了核心控制器dispatcherservlet和相关的组件,并制订了松散的结构,一使用各种灵活的需求。
首先spring mvc框架是围绕DispatcherServlet而工作的,所以这个类是其最为重要的类。从他的名字来看,他是一个servlet,那么根据javaEE基础的学习,我们知道可以拦截http发送过来的请求,在servlet初始化时,spring mvc会根据配置
获取配置信息,从而得到统一资源标识符和处理器之间的映射关系,为了更加灵活和增强功能,springmvc还会给处理器加入拦截器,所以还可以在处理器执行前后加入自己的代码。
1.DispatcherServlet:前端控制器
用户请求到达前端控制器,它就相当于 mvc 模式中的c,DispatcherServlet 是整个流程控制的中心,相当于是 SpringMVC 的大脑,由它调用其它组件处理用户的请求,DispatcherServlet 的存在降低了组件之间的耦合性。
2.HandlerMapping:处理器映射器
HandlerMapping 负责根据用户请求找到 Handler 即处理器(也就是我们所说的 Controller),SpringMVC 提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等,在实际开发中,我们常用的方式是注解方式。
public interface HandlerMapping { HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception; }
3.Handler:处理器
Handler 是继 DispatcherServlet 前端控制器的后端控制器,在DispatcherServlet 的控制下 Handler 对具体的用户请求进行处理。由于 Handler 涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发 Handler。(这里所说的 Handler 就是指我们的 Controller)
4.HandlAdapter:处理器适配器
通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。
5.ViewResolver:视图解析器
ViewResolver 负责将处理结果生成 View 视图,ViewResolver 首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。 SpringMVC 框架提供了很多的 View 视图类型,包括:jstlView、freemarkerView、pdfView 等。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Springmvc文件上传实现流程解析
SpringMVC 中对文件上传做了封装,我们可以更加方便的实现文件上传.从 Spring3.1 开始,对于文件上传,提供了两个处理器: CommonsMultipartResolver StandardServletMultipartResolver 第一个处理器兼容性较好,可以兼容 Servlet3.0 之前的版本,但是它依赖了commons-fileupload 这个第三方工具,所以如果使用这个,一定要添加 commons-fileupload 依赖. 第二个处理器兼容性较差,它适用于 S
-
SpringMVC DispatcherServlet组件实现解析
tomcat容器启动加载web.xml初始化springmvc相关策略组件 一.WebApplicationContext的层次结构 本来是想研究一下springMVC组件的,结果解决了以前的一个疑问.WebApplicationContext的层次结构 下面是从官网copy的一份web.xml ContextLoaderListener:初始化一个Root WebApplicationContext:SpringIOC初始化一些中间services+datasouces的Bean Dispat
-
SpringMVC方法返回值多种情况代码实例
返回ModelAndView 如果前后端不分的开发,大部分情况下,我们返回ModelAndView,即数据模型+视图: @Controller @RequestMapping("/user") public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { ModelAndView mv = new ModelAndView("hello"
-
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
整合前的准备步骤 1.搭建好基础框架,本文用的是SSM(Spring+SpringMVC+Mybatis),这里的过程就不在本文中讲了,之前我做个一个demo(ssm整合+用户模块),可以参考这个搭建好. 2.下载bootstrap fileinput组件源码: https://github.com/kartik-v/bootstrap-fileinput/ 搭建后的效果图 图1. 图2. 图3. 图4. 图5. 在需要编写的jsp页面引入组件 本工程的路径界面如下: 在jsp引入组件需要的js
-
SpringMVC利用dropzone组件实现图片上传
操作步骤如下 一.dropzone导入 01.dropzone官网下载其插件压缩包并复制项目: 02.将CSS和JS文件在HTML文件中引入: //下面src中的地址根据自己文件地址进行修改,不能之间copy,否则可能用不了!!! <link rel="stylesheet" href="/static/assets/plugins/dropzone/min/dropzone.min.css" rel="external nofollow"
-
SpringMVC使用第三方组件实现文件上传
一.文件上传的必要前提 A form 表单的 enctype 取值必须是:multipart/form-data (默认值是:application/x-www-form-urlencoded) enctype:是表单请求正文的类型 B method 属性取值必须是 Post C 提供一个文件选择域 input type=file 二.借助第三方组件实现文件上传 三. /** * springmvc跨服务器上传文件 * @return */ @RequestMapping("/testFileU
-
SpringMVC的执行流程及组件详解
这篇文章主要介绍了SpringMVC的执行流程及组件详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.核心模块 数据库访问技术与集成:JDBC.XML等 Web与远程调用技术:SpringMVC.WebServlet.WebSocket等 面向切面编程:AOP 基础设施:Tomcat Spring核心容器:Beans.Core.Context.Expression.ContestSupport 测试:Test 二.执行流程 1.用户通过页
-
Springmvc RequestMapping请求实现方法解析
请求url 标记请求URl很简单,只需要在相应的方法上添加注解即可: @Controller public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { return new ModelAndView("hello"); } } 这里 @RequestMapping("/hello") 表示当请求地址为 /hello 的时候,这个方法
-
简单了解SpringMVC常用组件作用解析
spring mvc的核心在于其流程,这是使用springmvc框架的基础,springmvc是一种基于servlet的技术,它提供了核心控制器dispatcherservlet和相关的组件,并制订了松散的结构,一使用各种灵活的需求. 首先spring mvc框架是围绕DispatcherServlet而工作的,所以这个类是其最为重要的类.从他的名字来看,他是一个servlet,那么根据javaEE基础的学习,我们知道可以拦截http发送过来的请求,在servlet初始化时,spring mvc
-
Bootstrap Tree View简单而优雅的树结构组件实例解析
A simple and elegant solution to displaying hierarchical tree structures (i.e. a Tree View) while leveraging the best that Twitter Bootstrap has to offer. 这是Bootstrap Tree View在git上的简介. 注意simple.elegant,简单而优雅,我喜欢这两个词. 那么今天的实例是通过Bootstrap Tree View来制作
-
Bootstrap Multiselect 常用组件实现代码
实际的项目网站中或多或少的或用到多选框,我选用的一款是 Bootstrap Multiselect. 官方文档:http://www.kuitao8.com/demo/20140224/1/bootstrap-multiselect-master/index.html 如果你英文好一点,里面有详细的介绍,多选框的设置,多选框获取值/文本,选项分组,各种各样丰富的表现方式和获取. 结合实际项目,加深技术理解,同时也方便自己后续项目中的使用. 多选框和单选框相同,实际项目中前端不可能将里面的选项很直
-
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
本文主要内容是介绍EasyUI的一些常用组件的使用,都是一些非常基础的知识,适合入门者学习,主要包括Base(基础).Layout(布局).菜单和按钮.表单.窗口.表格和树等的使用.要求完全掌握这些内容,学会查阅文档,了解开发基本思想.如果想进一步深入学习,可以直接去官网进行学习,查阅文档等http://www.jeasyui.com/. 一.简介 EasyUI是一种第三方组织开发的,开源的,功能强大的,基于jquery的插件库. 主要可以用于web的后台前端.jQuery EasyUI 提供易
-
C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析
看到这篇文章的题目,估计很多人都会问,这个组件是不是有些显的无聊了,说到web通信,很多人都会想到ASP.NET SignalR,或者Nodejs等等,实现web的网络实时通讯.有关于web实时通信的相关概念问题,在这里就不再做具体的介绍了,有兴趣的可以自行百度. 下面我们介绍一款WebSocket组件websocket-sharp的相关内容. 一.websocket-sharp组件概述 websocket-sharp是一个C#实现websocket协议客户端和服务端,websocket-sha
-
Spring MVC的完整执行流程和常用组件详解
目录 1.Spring MVC执行流程 2.Spring MVC常用组件 2.1 DispatcherServlet 2.2 HandlerMapping 2.3 HandlAdapter 2.4 Handler 2.5 ViewResolver 总结 1.Spring MVC执行流程 Spring MVC的完整执行流程如下: 客户端发送请求给DispatcherServlet前端控制器 DispatcherServlet根据请求调用HandlerMapping处理器映射器 HandlerMap
-
SpringMVC常用注解载入与处理方式详解
目录 一 . 前言 二 . RestController 部分 三 . RequestMapping 部分 四 . RequestParam和PathVariable 五 . RequestBody 和 ResponseBody 总结 一 . 前言 这一篇来看一下SpringMVC 中各个注解载入的方式和处理的时机 二 . RestController 部分 RestController 注解主要的作用是Bean的加载 , 值得关注的注解包括 : @Controller 和 @ResponseB
-
SpringMVC五大组件与执行原理分析总结
目录 1.DispatcherServlet(前端(核心)控制器) 2.HandlerMapping(处理器映射器) 3.Controller(处理请求的控制器) 4.ModelAndView(封装数据和视图信息) 5.ViewResolver(视图解析器) SpringMVC执行原理 总结 Spring MVC是包含在spring中的一个基于MVC设计思想的Web应用程序框架,目的是简化开发工作,提高开发效率. 优点 和Spring框架无缝集成,能直接使用Spring的IoC容器.AOP支持:
-
SpringMVC MethodArgumentResolver的作用与实现
目录 作用 源码实现 总结 昨天的文章我们学习 MethodArgumentResolver,它是采用一种策略模式,在 Handler 的方法被调用前,将 HTTP 请求中的参数转换成 Handler 方法的参数,今天我们将学习另外一种组件 MethodReturnValueHandler,用于将 Handler 返回的数据转换为 HTTP 响应. 作用 在Spring MVC中,当一个控制器方法执行完成后,它会返回一个数据对象,这个数据对象可以是任何类型,如对象.集合.数组.字符串等等.Met
随机推荐
- 深入浅析C#中单点登录的原理和使用
- 什么是DOM(Document Object Model)文档对象模型
- .net 页面指定区域打印的方法
- PHP实现仿Google分页效果的分页函数
- iframe 上下滚动条如何默认在下方实现原理
- android中AutoCompleteTextView的简单用法(实现搜索历史)
- MYSQL 解锁与锁表介绍
- prototype与__proto__区别详细介绍
- ASP.NET中使用开源组件NPOI快速导入导出Execl数据
- js验证符合用户体验的网页表单特效
- JS获取当前网址、主机地址项目根路径
- 给WIN2003 IIS SQL服务器安全加固
- nginx反向代理用做内网域名转发
- 举例讲解C#编程中对设计模式中的单例模式的运用
- Android中贝塞尔曲线的绘制方法示例代码
- 为什么在存储过程中用OLEDB方式不能返回记录集
- python交互式图形编程实例(一)
- electron + vue项目实现打印小票功能及实现代码
- form表单数据封装成json格式并提交给服务器的实现方法
- Python求一批字符串的最长公共前缀算法示例