springmvc框架

SpringMVC源码分析系列

喜你入骨 提交于 2019-12-16 17:16:00
SpringMVC源码分析系列 说到java的mvc框架,struts2和springmvc想必大家都知道,struts2的设计基本上完全脱离了Servlet容器,而springmvc是依托着Servlet容器元素来设计的,同时springmvc基于Spring框架,Spring框架想必搞java的同学都很熟悉。 一进Spring的 官网 就发现了这样一排醒目的文字, spring可以让我们构造简单的、便携的、又快又易于扩展的基于jvm的系统和应用程序。 没错,基于Spring的MVC框架SpringMVC同样也可以构造具有这些特性的系统。 楼主从5.1开始写的第一篇《SpringMVC入门》开始,到现在差不多将近2个月的时间,之后陆陆续续写了几篇关于SpringMVC的源码分析文章。 有同学想研究SpringMVC源码或想深入学习一下SpringMVC的话,可以参考本系列文章。 废话不多说,本系列的文章都是基于Spring4.0.2版本的,楼主写的时候出到了4.0.2,也是最新的,现在的最新版本是4.0.5。 文章阅读顺序:   1. SpringMVC入门     SpringMVC的入门文章, 对于某些没接触过SpringMVC的同学来说,可以阅读以下,了解这个框架的结构以及使用,以入门的同学可以选择不看~   2.

SpringMVC中拦截器和过滤器的总结

 ̄綄美尐妖づ 提交于 2019-12-16 16:44:36
1. SpringMVC中的拦截器(Interceptor) 1.1. 作用 拦截器是运行在 DispatcherServlet 之后,在每个 Controller 之前的,且运行结果可以选择放行或拦截! 除此以外,拦截器还会运行在 Controller 之后,关于拦截器,在处理某一个请求时,最多有3次执行!只不过,通常关注最多的是第1次执行,即在 Controller 之前的那次! 1.2. 基本使用 需要自定义类,例如名为 LoginInterceptor ,实现 HandlerInterceptor 接口,重写3个抽象方法: public class LoginInterceptor implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("LoginInterceptor.preHandle()"); return false; } public void postHandle(HttpServletRequest request, HttpServletResponse response,

springMVC请求流程详解

不问归期 提交于 2019-12-16 11:20:25
SpringMVC框架是一个基于请求驱动的Web框架,并且使用了‘前端控制器’模型来进行设计,再根据‘请求映射规则’分发给相应的页面控制器进行处理。 (一)整体流程 具体步骤: 1、 首先用户发送请求到前端控制器,前端控制器根据请求信息(如 URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的 1、2 步骤; 2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在 Spring Web MVC 中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个 ModelAndView(模型数据和逻辑视图名);图中的 3、4、5 步骤; 3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图中的步骤 6、7; 4、 前端控制器再次收回控制权,将响应返回给用户,图中的步骤 8;至此整个结束。 (二)核心流程 具体步骤: 第一步:发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找) 第三步:处理器映射器HandlerMapping向前端控制器返回Handler

SpringMVC框架(1)--基础入门

给你一囗甜甜゛ 提交于 2019-12-14 15:13:59
Spring框架可优化的部分: 因为应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件) ,这样的弊端是配置文件加载多次,应用上下文对象创建多次。所以在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可以在Web应用启动时,就加载Spring的配置文件,创建应用上下文对象ApplicationContext,在将其存储到最大的域servletContext域中,这样就可以在任意位置从域中获得应用上下文ApplicationContext对象了。只加载一次配置文件就可以了,也可以将Spring与Web环境集成。 怎么使用Spring提供的工具获取应用上下文? Spring提供了一个监听器ContextLoaderListener就是对上述功能的封装,该监听器内部加载Spring配置文件,创建应用上下文对象,并存储到ServletContext域中,提供了一个客户端工具WebApplicationContextUtils供使用者获得应用上下文对象。 使用步骤: 1.导入坐标 <dependency> <groupId>org

SpringMVC面试问题汇总,你想知道的都在这

醉酒当歌 提交于 2019-12-13 18:40:51
1、什么是Spring MVC ?简单介绍下你对springMVC的理解? 1、SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 2、SpringMVC是Spring的一个模块,是Spring的子容器,子容器可以拿父容器的东西,但是父容器不能拿子容器的东西。 2、SpringMVC的流程? (1)用户发送请求至前端控制器DispatcherServlet; (2) DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handle; (3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet; (4)DispatcherServlet 调用 HandlerAdapter处理器适配器; (5)HandlerAdapter 经过适配调用 具体处理器(Handler,也叫后端控制器); (6)Handler执行完成返回ModelAndView; (7

我的历史文章整理(2017-2019)

醉酒当歌 提交于 2019-12-12 11:41:19
我的写作经历 我是一名普通的 Java 开发者,喜欢在网上分享一些个人的故事以及工作中遇到的问题,自 2017 年开始用 “十三” 这个网名在各个博客平台发表文章,常活跃的平台有 CSDN、博客园、掘金、简书等网站,有免费的文章,也有付费的专栏,前前后后大概有 200 篇文章,算是我的写作经历。 从零开始搭建一个精美且实用的管理后台 SSM 搭建精美实用的管理系统 导读:自己动手实现 JavaWeb 后台管理系统 第01课:Spring MVC+ Spring + Mybatis “三大框架”介绍 第02课:前期准备工作及基础环境搭建 第03课:三大框架的整合 第04课:Tomcat 8 安装部署及功能改造 第05课:产品设计之搭建精美实用的后台管理系统 第06课:前端选型 AdminLTE3 第07课:登录模块的系统设计和实现 第08课:使用 JqGrid 插件实现分页功能 第09课:弹框组件整合——完善添加和修改功能 第10课:图片管理模块 第11课:多图上传与大文件分片上传、断点续传 第12课:文件导入导出功能 第13课:富文本信息管理模块 第14课:SweetAlert 插件整合及搜索功能实现 第15课:项目发布——Linux 命令及发布流程 第16课:项目优化篇之日志输出 第17课:项目优化之单元测试 第18课:项目优化之数据库连接池 第19课:项目优化之 Druid

day01-springboot

限于喜欢 提交于 2019-12-12 08:22:39
0.学习目标 了解SpringBoot的作用 掌握java配置的方式 了解SpringBoot自动配置原理 掌握SpringBoot的基本使用 了解Thymeleaf的基本使用 1. 了解SpringBoot 在这一部分,我们主要了解以下3个问题: 什么是SpringBoot 为什么要学习SpringBoot SpringBoot的特点 1.1.什么是SpringBoot SpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品: 我们可以看到下面的一段介绍: Takes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible. 翻译一下: 用一些固定的方式来构建生产级别的spring应用。Spring Boot 推崇约定大于配置的方式以便于你能够尽可能快速的启动并运行程序。 其实人们把Spring Boot 称为搭建程序的 脚手架 。其最主要作用就是帮我们快速的构建庞大的spring项目

SpringMVC拦截器

。_饼干妹妹 提交于 2019-12-11 11:40:09
SpringMVC拦截器类似于Servlet开发中的过滤器Filter,用于对处理进行预处理和后处理。 过滤器是servlet规范中的一部分,任何javaweb工程都可以使用。是在url-pattern中配置了/*之后,可以对 所有 要访问的资源拦截。(拦截所有) 拦截器是springMVC框架自己的,只是会拦截访问的控制器方法,如果访问的是jsp,html,image,js则不会拦截。 自定义拦截器必须实现:HandlerInterceptor接口。 来源: https://www.cnblogs.com/taiguyiba/p/12021469.html

SpringMVC之数据绑定和自定义类型转换器

送分小仙女□ 提交于 2019-12-10 20:33:50
1、数据绑定流程 Spring MVC 主框架将 ServletRequest 对象及目标方法的入参实例传递给 WebDataBinderFactory 实例,以创建 DataBinder 实例对象 DataBinder 调用装配在 Spring MVC 上下文中的 ConversionService 组件进行数据类型转换、数据格式化工作。将 Servlet 中的请求信息填充到入参对象中 调用 Validator 组件对已经绑定了请求消息的入参对象进行数据合法性校验,并最终生成数据绑定结果 BindingData 对象 Spring MVC 抽取 BindingResult 中的入参对象和校验错误对象,将它们赋给处理方法的响应入参 Spring MVC 通过反射机制对目标处理方法进行解析,将请求消息绑定到处理方法的入参中。数据绑定的核心部件是 DataBinder,运行机制如下: 数据绑定流程: SpringMVC上下文中内建了很多转换器,可以完成大多是Java类型的转换工作。 ConversionService converters = java.lang.Boolean -> java.lang.String : org.springframework.core.convert.support.ObjectToStringConverter@f874ca java.lang

spring aop之父子容器

匆匆过客 提交于 2019-12-09 17:46:26
需求;项目对外提供接口,要求每个对外接口都要进行token认证。 解决办法:写一个token认证的工具类,在每个需要认证的接口方法开始的地方,调用工具类中的token认证方法。 问题:因为要满足指定条件才可以进行下一步,在接口中调用token认证的时候,要返回结果进行判断,不止是一行代码可以解决问题。 优化:使用aop 切面编程,在执行接口的内容之前,进行认证。通过注解的方式,织入到切点中。这样在需要进行认证的接口上只需要添加一个注解就可以token认证功能。 问题:基于Aspect注解实现该功能,在程序启动时,访问接口,直接进入接口,没有进入切面。 AuthController @RestController public class AuthController { @PostMapping("authentication") @TokenChecker public Result getToken(String username,String password){ return null; } } 切面类:execution 表达式没有任何问题。 @Aspect @Component public class TokenAspect {   //匹配指定类下的有指定注解的方法。只要在要切入的方法上加上注解就可以将该方法作为切入点。 @Pointcut("execution