(16)SpringMVC基础:入门,RESTful,拦截器
文章平均质量分 87
SpringMVC入门与数据绑定;中文的乱码问题;ModelAndView对象核心用法;SpringMVC整合FreeMarker;RESTful编程风格;Spring MVC拦截器;
小懒羊爱吃草
小枯林
展开
-
Spring MVC处理流程;
说明:(1)本篇博客合理性解释:前面介绍了SpringMVC的基本内容,包括【SpringMVC入门与数据绑定】、【Restful开发风格】、【拦截器(Interceptor)】;那么本篇博客就来总结下SpringMVC的底层原理和数据处理流程;(2)本篇博客参考的博客有:【SpringMVC 工作原理】,该文的作者是【aFa攻防实验室】;目录一:SpringMVC处理流程;1.SpringMVC处理流程:分析;2.SpringMVC处理流程:关键组件;3....原创 2021-12-02 10:12:39 · 2216 阅读 · 0 评论 -
Spring MVC拦截器3:拦截器案例:开发【获取“用户流量信息”的拦截器】;(logback日志组件:把日志存储到日志文件中;)
说明:(1)本篇博客合理性解释: ● 在【Spring MVC拦截器1:拦截器入门一】和【Spring MVC拦截器2:拦截器入门二】两篇博客介绍了拦截器的基本使用;那么,本篇博客就通过一个案例,演示下在项目中如何使用拦截器; ●当用户发送请求,访问我们的系统时→请求中包含很多信息→我们可以收集这些基础信息,以供利用→为此,拦截器就派上用场了→我们可以利用拦截器拦截用户请求,从而获取请求中的基础信息→然后,我们也可以把这些信息存储到具体日志文件中→为此,...原创 2021-11-30 23:14:13 · 1160 阅读 · 0 评论 -
附加:拦截器(Interceptor)和过滤器(Filter)的区别;(这篇博客没写完,不要看~~)
说明:(0)这篇博客没有经过思考、排版;内容杂乱,不具有参考性;(以后补全……)(1)如有需要:过滤器(filter)可以参考【(5)常用功能与过滤器、监听器、FreeMarker;】专栏中的内容;(2)目前明确的有: ●过滤器是Servlet的;拦截器是SpringMVC的;二者的底层原理不同; ●应该在实际开发中,根据开发经验,逐渐加深对二者的了解;单纯纸上谈兵,意义不大;(3)本篇博客参考的博客有: ● 【过滤...转载 2021-11-29 16:59:06 · 115 阅读 · 0 评论 -
Spring MVC拦截器2:拦截器入门二:拦截器使用技巧;(<mvc:exclude-mapping path=““/>:设置不拦截的url;多个拦截器执行顺序;preHandle()方法的返回值)
说明:在【Spring MVC拦截器1:拦截器入门一:拦截器(interceptor)简介;拦截器开发流程简介;演示了拦截器最基本的配置流程;】中,已经展示了拦截器的基本使用流程,但是拦截器在实际时,还有很多问题需要解决;...原创 2021-11-29 13:29:59 · 1172 阅读 · 0 评论 -
附加:【Servlet】和【Spring MVC】的关系;【Servlet】体系简述;
说明:(1)为什么写本篇博客?: ● 在【Spring MVC拦截器1:拦截器入门一:拦截器(interceptor)简介;拦截器开发流程简介;演示了拦截器最基本的配置流程;】中:这是一个SpringMVC项目,然后在这个项目中我们引入了servlet-api.jar依赖;当时心里就像,SpringMVC就是用来替代Servlet的,为什么在一个SpringMVC项目中,还需要引入servlt-api.jar? ●自然,在【Spring MVC拦截器...转载 2021-11-26 05:43:14 · 3489 阅读 · 0 评论 -
附加:Java简介(Java SE,Java EE,JDK等);【java.servlet.**】和【javax.**】简介;Eclipse和IDEA在使用servlet-api.jar时的区别;
说明:(1)为什么要写本篇博客?:在写【Spring MVC拦截器1:拦截器入门一:拦截器(interceptor)简介;拦截器开发流程简介;演示了拦截器最基本的配置流程;】这篇博客的时候,发现:同样是需要在项目中用到【HttpServletRequest和HttpServletResponse】的时候:【如果我们使用IDE的是Eclipse,那么我们不需要引入javax.servlet依赖】,【如果我们使用IDE的是IDEA,那么我们不需要引入javax.servlet依赖】;因为,对此产生疑问,所.原创 2021-11-25 08:31:50 · 731 阅读 · 0 评论 -
Spring MVC拦截器1:拦截器入门一:拦截器(interceptor)简介;拦截器开发流程简介;演示了拦截器最基本的配置流程;
说明:(1)本篇博客合理性解释:(2)如有需要:过滤器(filter)可以参考【(5)常用功能与过滤器、监听器、FreeMarker;】专栏中的内容;SpringAOP可以参考【(15)Spring基础:IoC;AOP;JDBC;】专栏中的内容;一:拦截器简介;说明:(1)拦截器的作用:拦截url,对其进行前置/后置过滤;(2)【Spring的拦截器】和【J2EE的过滤器】,其作用有点相似,都是拦截请求;但是二者底层的实现逻辑是不同的; ●拦截器(...原创 2021-11-23 14:15:18 · 1379 阅读 · 0 评论 -
RESTful开发风格8:跨域问题二:Spring MVC实现“CORS跨域访问”的两种策略:类上使用【@CrossOrigin注解】;配置文件中通过<mvc:cors>进行全局配置;
说明:(1)本篇博客的合理性解释: ●上篇博客的脉络是:【RESTful开发风格中,访问远程网站肯定会经常遇到】→【但是,浏览器存在一个同源策略】→【即,当访问不同域的资源时,会触犯浏览器同源策略,出现无法访问的问题】→【那么,为了能够实现访问不同域中的资源,就需要一种“跨域访问”机制】→【所以,在介绍“跨域访问”之前,上篇博客就先介绍浏览器的同源策略】; ●既然,上篇博客已经介绍了【浏览器同源策略】; ●那么【为了能够在访问不同...原创 2021-11-18 05:31:06 · 1301 阅读 · 0 评论 -
RESTful开发风格7:跨域问题一:浏览器同源策略;(包括:浏览器同源策略是什么;域相同与否的界定;HTML中的<img>,<script>,<link>不受同源策略约束;)
说明:(1)本篇博客的代码,延续自【RESTful开发风格6:RESTful基本使用四:JSON序列化;(jackson组件,以及其中的 @JsonFormat注解来解决时间问题;)】中的【restful工程】;在说【跨域访问】问题时,之所以要先说浏览器,是因为【跨域访问】的根源来自于【浏览器的同源策略】;一:浏览器同源策略;1.【浏览器同源策略】是什么?意思是: ● 比如有两个网站【网站A】和【网站B】,这两个网站有不同的域名,在不同的服务器上;...原创 2021-11-16 03:21:47 · 761 阅读 · 0 评论 -
RESTful开发风格6:RESTful基本使用四:JSON序列化;(jackson组件,以及其中的 @JsonFormat注解来解决时间问题;)
说明:(1)上篇博客【RESTful开发风格3:RESTful基本使用一:客户端是HTML时,Restful演示;】演示了RESTful的最基本的使用;只不过只是RESTful的最基本使用还不够,其还存在一些问题。本篇博客就是来解决三个问题的最后一个: ● 【@RestController注解】:需要优化JSON的产生方式;(2)本篇博客的代码沿用自【RESTful开发风格5:RESTful基本使用三:简单请求(GET和POST);非简单请求(PUT和DELETE);(包括...原创 2021-11-12 06:12:01 · 1074 阅读 · 0 评论 -
RESTful开发风格5:RESTful基本使用三:简单请求(GET和POST);非简单请求(PUT和DELETE);(包括FormContentFilter过滤器)
说明:(1)本文内容: ●简单请求和非简单请求是什么; ●基本逻辑:【SpringMVC原先只能处理GET和POST这种简单请求】→【但后来有了PUT和DELETE这种非简单请求】→【而,SpringMVC一开始是无法处理这种非简单请求的】→【为了能够处理PUT和DELETE这种非简单请求,Spring MVC可以通过FormContentFilter过滤器,来解决这个需求】;(2)本篇博客的代码沿用自【RESTful开发风格4:RESTful基...原创 2021-11-12 01:47:45 · 1732 阅读 · 0 评论 -
RESTful开发风格4:RESTful基本使用二:【@RestController注解】;【路径变量(uri中的变量)】(使用@PathVariable注解来获取路径变量值);
说明:(1)上篇博客【RESTful开发风格3:RESTful基本使用一:客户端是HTML时,Restful演示;】演示了RESTful的最基本的使用;只不过只是RESTful的最基本使用还不够,其还存在一些问题。本篇博客就是来解决三个问题的其中两个: ● 【@RestController注解】:简化@ResponseBody注解的使用方式; ● 【路径变量】:使用【{} + @PathVariable注解】的方式,获取uri中的参数;目录一:【...原创 2021-11-11 20:30:59 · 1358 阅读 · 0 评论 -
RESTful开发风格3:RESTful基本使用一:客户端是HTML时,Restful演示;(本篇博客,仅仅是RESTful的一个基本演示,还有很多不足的地方需要完善)
说明:(1)本篇博客主要内容:客户端是HTML时,与服务器端进行交互;(2)本篇博客的代码,沿用自【RESTful开发风格2:RESTful开发风格初体验二:开发第一个RESTful风格的项目;(主要是创建工程,为以后的各种演示作准备)】...原创 2021-11-11 06:09:40 · 1326 阅读 · 0 评论 -
RESTful开发风格2:RESTful开发风格初体验二:创建Spring MVC工程;创建第一个遵循RESTful风格的后端案例代码;(本篇博客的主要目的是,先打个基础,做好准备)
说明:(1)本篇博客通过一个简单的案例,开发第一个RESTful风格的项目;原创 2021-11-11 01:21:09 · 557 阅读 · 0 评论 -
RESTful开发风格1:RESTful开发风格初体验一:RESTful开发风格简介;
说明:(1)零:基于传统MVC模式开发web应用的问题;说明:(1)上面的开发模式是典型的B/S架构(Browser/Server,浏览器/服务器模式); ● 上面的开发模式很容易理解;也是我们以前经常经常遇到的; ● 在上面的模式中,客户端是支持HTML的浏览器(如谷歌浏览器、IE浏览器等);(2)但是,还有很多客户端不是【支持HTML的浏览器】; ● 但是,目前互联网发展呈多元化的趋势,除了像谷歌浏览器这种B...原创 2021-11-09 19:57:34 · 778 阅读 · 0 评论 -
SpringMVC入门与数据绑定13:Spring MVC整合FreeMarker;( 引入依赖;配置FreeMarker引擎;配置FreeMarker参数;)
说明:(1)有关FreeMarker的内容,如有需要可以快速参考【(5)常用功能与过滤器、监听器、FreeMarker;】中的内容;原创 2021-10-21 17:16:45 · 1099 阅读 · 0 评论 -
SpringMVC入门与数据绑定12:ModelAndView对象;(ModelAndView的基本使用、setViewName()、相对路径和绝对路径;替代方案【String和ModelMap】;)
说明:(1)本篇博客的代码沿用自【SpringMVC入门与数据绑定11:响应输出结果;(@ResponseBody简介;ModelAndView引入;)】中的【frist-springmvc项目】;已知,在SpringMVC中,需要使用ModelAndView对象,来实现【数据和页面的绑定】;说明:(1)ModelAndView的addObject()方法: ● 该方法用于设置【前端页面要显示的数据是什么】; ● 该方法的参数:可以是任何...原创 2021-10-16 17:01:59 · 6229 阅读 · 1 评论 -
SpringMVC入门与数据绑定11:响应输出结果;(@ResponseBody简介;ModelAndView引入;)
说明:(1)在前面几篇博客中,都在介绍【请求中如何设置url映射、如何接收数据】等有关请求的内容;本篇博客就介绍响应的相关内容;原创 2021-10-15 15:10:58 · 599 阅读 · 0 评论 -
SpringMVC入门与数据绑定10:中文乱码问题:请求中的中文乱码;(包括:【get:修改Tomcat配置文件】【post:web.xml中配置过滤器】【响应:Spring配置文件中配置转换器】)
说明:(1)本篇博客必要性说明:默认情况下,SpringMVC对中文的支持度不高,很多时候会出现中文乱码的情况;本篇博客就是介绍中文乱码问题的解决策略;(2)本篇博客的代码沿用自【SpringMVC入门与数据绑定9:Spring MVC数据绑定六:日期类型转换;(@DateTimeFormat注解;Converter转换器类;)】的【frist-springmvc项目】;零:中文乱码简述;(1)中文乱码问题由来和解决思路;(0)前面在介绍Servlet的时候,就接触过中...原创 2021-10-13 18:23:10 · 457 阅读 · 0 评论 -
SpringMVC入门与数据绑定9:Spring MVC数据绑定六:日期类型转换;(@DateTimeFormat注解;Converter转换器类;)
说明:(1)本篇博客必要性说明: ●世界各地,日期的表达方式存在差异;欧美常采用【月、日、年】的方式;中国常采用【年、月、日】的方式; ●正是由于这种差异,我们在开发中也要进行对应的处理; ●【如何接收程序中的日期数据、并将其转换为日期对象】,就是本篇博客的重点;...原创 2021-10-12 16:07:14 · 595 阅读 · 0 评论 -
SpringMVC入门与数据绑定8:Spring MVC数据绑定五:关联对象赋值;
说明:(1)本篇博客必要性说明: ● 【关联对象】以前遇到过多次,就是指在一个对象中引用了另外一个对象; ●我们需要对这个被引用对象进行赋值,这个操作就是【关联对象赋值】,这也是本篇博客的重点;(2)本篇博客的代码沿用【SpringMVC入门与数据绑定7:Spring MVC数据绑定四:接收表单中的【复合数据】;(包括使用数组、List、Map去接收)】中的代码;(3)在实际开发中: ●对于一个结构复杂的表单,不应该傻乎乎的只用一个...原创 2021-10-11 12:34:01 · 413 阅读 · 0 评论 -
SpringMVC入门与数据绑定7:Spring MVC数据绑定四:接收表单中的【复合数据】;(包括使用数组、List、Map去接收)
复合数据:本篇博客内容:(1)如果某个参数没有被传递的时候,在后端我们不希望其出现null的情况,那么为此就可以使用@RequestParam设置默认值;(2)Map接受请求中的参数:这种在实际中不太常用;而且这其中有个坑;...原创 2021-10-07 16:40:13 · 704 阅读 · 0 评论 -
SpringMVC入门与数据绑定6:Spring MVC数据绑定三:Controller接收请求中的参数之:使用【Java Bean】接收;
说明:(1)本篇博客主要内容是:【后台的Controller方法】如何获取【前端传过来的数据】;然后,本篇博客【后台的Controller方法】是以【JavaBean】的方式接收【前端传过来的,请求中的数据】的;(2)本篇博客的代码延续自【SpringMVC入门与数据绑定5:Spring MVC数据绑定二:Controller接收请求中的参数之:使用【方法参数】接收;(PS:包括get请求时使用的@RequestParam())】;目录零:本篇博客必要性分析;一:使用【Java...原创 2021-10-01 17:03:14 · 772 阅读 · 0 评论 -
SpringMVC入门与数据绑定5:Spring MVC数据绑定二:Controller接收请求中的参数之:使用【方法参数】接收;(PS:包括get请求时使用的@RequestParam())
说明:(1)本篇博客主要内容是:【后台的Controller方法】如何获取【前端传过来的数据】;然后,本篇博客【后台的Controller方法】是以【方法参数】的方式接收【前端传过来的,请求中的数据】的;(2)本篇博客的代码延续自【SpringMVC入门与数据绑定4:Spring MVC数据绑定一:URL Mapping(URL映射);(@RequestMapping,@GetMapping、@PostMapping)】;目录前置性介绍;零:【后台的Controller方法】如何获取.原创 2021-10-01 14:45:45 · 676 阅读 · 0 评论 -
附加:一般情况下,通过浏览器的地址栏输入url,发送的只能是get请求;(即【哪些情况下会发送get请求】,【哪些情况下会发送post请求】)
说明:(1)写本文的目的是:在【SpringMVC入门与数据绑定3:Spring MVC数据绑定一:URL Mapping(URL映射);】遇到了post请求报405错误的情况,一时有点迷糊,所以有了本篇博客;(2)本篇博客转载自【GetMapping 和 PostMapping】,【Stack Overflow:@PUT Jersey Error 405: Method not allowed】;1.哪些情况下会发送get请求,哪些情况下会发送post请求; (本篇博客的重点)(1).转载 2021-09-30 15:03:48 · 3586 阅读 · 0 评论 -
SpringMVC入门与数据绑定4:Spring MVC数据绑定一:URL Mapping(URL映射);(@RequestMapping,@GetMapping、@PostMapping)
说明:(1)前面几篇博客我们简单介绍了【SpringMVC】,对【SpringMVC】有了简单的认识;从本篇博客开始,将详细介绍【SpringMVC】;(2)本篇博客开始,介绍【SpringMVC数据绑定】;数据绑定就是指:【SpringMVC中,Controller控制器的某一个方法】如何和【url】绑定在一起;前面接触了【@GetMapping("/t")注解 】和【@ResponseBody注解】,自然还有其他注解可以完成类似的工作;(3)本篇博客代码沿用【SpringMVC入门...原创 2021-09-30 14:30:53 · 1288 阅读 · 0 评论 -
SpringMVC入门与数据绑定3:Spring MVC初体验三:Spring MVC环境配置;(通过一个简单案例,走了一遍Spring MVC流程;)
说明:(1)本篇博客的主要内容是,【如何搭建SpringMVC的开发环境】,【如何在SpringMVC环境下,开发一个标准的Controller控制器】;(2)本篇博客的代码延续自【SpringMVC入门与数据绑定2:Spring MVC初体验二:使用IDEA创建【maven + WebApp】项目;】中的first-springmvc项目;一:SpringMVC环境配置步骤简述说明:(1)首先,需要引入【spring-webmvc模块】;(2)在【SpringMV...原创 2021-09-28 21:32:59 · 458 阅读 · 2 评论 -
SpringMVC入门与数据绑定2:Spring MVC初体验二:使用IDEA创建【maven + WebApp】项目;
说明:(1)本篇博客和【OA系统三:前期准备一:查看并准备好一个数据库逻辑空间;创建一Maven Web工程;】的内容一模一样,所以本篇博客算是重新啰嗦一遍;但是,在具体操作上两篇博客又有些许差别;但是,个人感觉,还好,问题不大。本来【使用IDEA创建Maven+Web项目】这些内容,就没什么复杂的;目录一:使用IDEA,创建一个MavenWebApp项目(1)创建Maven工程(2)将工程设置为WebApp工程设置第一部分:web.xml保存目录:设置第二部分:web资源..原创 2021-09-17 23:51:24 · 464 阅读 · 0 评论 -
SpringMVC入门与数据绑定1:Spring MVC初体验一:Spring MVC简介;
一:MVC引文关于MVC的内容,如有需要,可以快速参考【二:MVC架构模式(非常重要!!!)】及附近相关文章;说明:(1)在MVC架构模式中,Controller是最重要的部分,其作用就是【接收前端View传过来的数据】,然后【根据数据,调用后端Model的业务逻辑,得到处理结果】,然后【再把结果返回到前端View视图中】;(2)以前接触的J2EE中的Servlet就是一种开发Controller控制器的技术;只是J2EE的Servlet,其提供的方法方法使用起来并不是特别方便;..原创 2021-09-17 15:00:39 · 252 阅读 · 0 评论 -
Spring MVC基础:内容概述;
本专栏的主要内容包括:【SpringMVC入门与数据绑定】,【Restful开发风格】,【SpringMVC拦截器】;【SpringMVC】是Spring提供的JavaWeb的开发模块,是JavaWeb领域最重要的一个技术;(1)SpringMVC入门:了解SpringMVC的基本开发流程;(2)接收Web数据:即,后台如何接收来自于客户端浏览器的数据;(3)URLMapping:和J2EE的Servlet类似,SpringMVC中开发的Controller都要与某一个URL...原创 2021-09-16 17:17:55 · 243 阅读 · 0 评论