SpringMVC学习总结三——JSON交互与拦截器

SpringMVC框架完整学习指南 《SpringMVC框架完整学习指南》摘要 本文全面介绍了SpringMVC框架的核心内容,包含15个章节的系统知识体系: 基础概念 SpringMVC是Spring框架的Web模块,基于MVC模式 核心优势:轻量级、注解驱动、RESTful支持 核心组件 DispatcherServlet:前端控制器 五大核心组件:HandlerMapping、HandlerAdapter等 详细工作流程解析 开发实践 环境搭建:XML与Java配置 Controller开发:4种返回值类型 请求映射:@RequestM 阅读详情

五、JSON交互

  1.  @ResponseBody 作用于返回的对象,将数据转化为指定的json格式
  2. 如果传的是json字符串

             var jsonObject = JSON.parse(jsonStr);

    1. 解决方案一:在js中把json字符串转成json对象
    2. 解决方案二:将json字符串传到controller,要设置自编码格式

$.ajax({

               url:"${pageContext.request.contextPath}/login",

               type:"post",

               data:jsonStr,

               contentType:"application/json;charset=UTF-8",

               dataType:"json",//返回数据类型

               success:function(data){

                     alert(data.code)

                }

})

                    然后在形参上,将json字符串转成json对象格式

@RequestMapping(value="login2")

         @ResponseBody

         public Map login2(@RequestBody User user) { //@RequestBody读取请求中的内容,把它转成json格式,然后在进行数据绑定到形参上

                   Map<String, Object> map = new HashMap<>();

                   if (user.getUsername()!=null&&user.getUsername().length()>3) {

                            map.put("code", 1);

                   }else{

                            map.put("code", 0);

                   }

                   return map;

         }

 

         3.RESTFUL风格(只用在GET请求)(软件架构风格)

             把请求中的参数变成请求的路的一种风格。

  1. 传统的方式url:http://localhost:8080/SpringMVC04/user/ select?id=2
  2. RESTFUL风格:http://localhost:8080/SpringMVC04/user/select/2
  3. 写法:

@RequestMapping(value="select/{id}")  //{id}表示动态参数,用于匹配以/select/{id} 结尾的请求

         public ModelAndView select(@PathVariable int id) {  //@PathVariable用于接收并且绑定请求中的参数

                   ModelAndView mv = new ModelAndView();

                   mv.addObject("msg","接收到的id:"+id);

                   mv.setViewName("/user.jsp");

                   return mv;

         }

六、拦截器

类似于servlet中的过滤器,主要用于对处理器进行预处理和后处理。用于拦截用户的请求并且进行响应的处理。

MyInterceptor.java

public class MyInterceptor implements HandlerInterceptor{

         /**

          * 在处理器方法之前执行

          * 返回true则向下继续执行,如果返回false,则终端执行

          * 适合登录验证、权限检查等

          */

         @Override

         public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {

                   System.out.println("preHandle....");

                   return true;

         }

        

         /**

          * 在处理器方法之后,并且在视图解析器之前执行

          * 对请求域中的数据和视图做出修改,可加入一些公共的数据信息等

          */

         @Override

         public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)

                            throws Exception {

                   System.out.println("postHandle...");

         }

         /**

          * 整个请求-响应完成后再执行

          * 适合:清理资源、记录日志

          */

         @Override

         public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)

                            throws Exception {

                   System.out.println("afterCompletion...");

         }

}

springmvc.xml

<!-- 配置拦截器 -->

         <mvc:interceptors>

                   <!-- 单个拦截器 -->

                   <mvc:interceptor>

                            <!-- 配置拦截器作用的路径 -->

                            <mvc:mapping path="/**"/>

                            <!-- 配置不需要拦截的路径 -->

                            <mvc:exclude-mapping path=""/>

                            <!-- 拦截器的bean -->

                            <bean class="com.szy.interceptor.MyInterceptor"></bean>

                   </mvc:interceptor>

         </mvc:interceptors>

spring mvc拦截器过滤json中的null值 spring mvc拦截器,过滤json数据中的null值,将null变成空字符串,内含截图,及jar包 立即下载

相关推荐

spring配置JSON拦截器VIEW

NULL 博文链接:https://gongsy.iteye.com/blog/1856240

SpringMVC获取、重写请求request中的json参数

如图,postman中的json格式,后台解析参数 我的json:{"loginName":"shanghu001","password":"shanghu1","belongType":1} 请求体解析参数的工具类: package com.mortals.iot.framework.util; import com.alibaba.fastjson.JSONObject; imp...

hgg923的专栏 1595

Atlas 300I Pro推理卡性能深度测试:对比业界同类产品的能效比与算力表现

本文对昇腾Atlas 300I Pro推理卡进行了深度性能评测,重点对比了其与业界同类产品的能效比与算力表现。实测数据显示,该卡在运行BERT等模型时展现出高达39.6句子/秒/瓦的卓越能效比,电力成本可降低40%以上,同时其达芬奇架构和硬件加速特征检索能力,为高密度在线推理和向量检索场景提供了强大支撑。

weixin_29031161的博客 579

一文搞懂JSON和拦截器

文章目录JSONJSON的特点JSON的两种数据结构:JSON数据转换RESTful拦截器拦截器类的两种定义方式单个拦截器的执行流程多个拦截器的执行流程 JSON JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式。它是基于JavaScript的一个子集,使用了C、C++、C#、Java、JavaScript、Perl、Python等其他语言的约定,采用完全独立于编程语言的文本格式来存储和表示数据。 JSON的特点 JSON与XML非常相似,都是用来存储

zag666的博客 1215

记一次Nacos线程数飙升排查

Nacos线程飙升问题排查

叭嘣的博客 2631

GB9706.1-2020应用部分如何理解?

医用电气设备对应用部分的温度限制,绝缘考核,漏电流限制要求相对设备的其他部分来说都会要求比较严格。所以,划分设备的应用部分显得非常重要。现实中,医疗器械种类繁多,形状各异,比如大家熟悉的,小的如血压计,大的设备如CT。有些时候,我们应该如何根据应用部分的定义来确定ME设备的哪些部分是应用部分呢?还有GB 9706.1-2020中关于“应用部分”的定义中注2我们又该如何理解? 看过GB 9706.1-2020的朋友应该都已经注意到,相比老版也就是07版的9706.1,应用部分的定义是相对变...

喵叫兽的博客 8294

springMVC拦截器从Request中获取Json格式并解决request的请求流只能读取一次的问题

背景 在使用SSM(你问我什么叫SSM,我一拳锤爆你的狗头)做开发的时候,经常会使用@RequestBody注解,这个注解是非常的好用。但是如果你想在请求参数传到后台的时候做一个参数检验,当然可以!使用SpringMVC的拦截器,在拦截器里把request的数据读取出来不就行了!!,但是在使用了拦截器的时候会出现一个问题!!!!你在拦截器读取了request的数据,在Controller里...

菜鸟sdut的博客 2万+

android 14.0 控制wifi启用禁用功能实现

在14.0的产品rom定制化开发中,在产品开发中,对于功能的开发的功能也是挺多的,而在对于wifi的功能定制需求,有要求需要通过系统属性来控制wifi开关是否可以打开 来控制是否可以连接wifi,打开控制wifi的功能,接下来分析wifi的开启流程来实现该功能的实现

安卓兼职framework和app工程师的博客 1771

springMVC拦截器、json转换器、统一异常处理在配置文件中配置

拦截器配置: 统一异常处理: 第一步在springmvc-servlet.xml中配置 第二步创建MyExceptionHandler实现HandlerExceptionResolver借口: public class MyExceptionHandler implements HandlerExceptionResolver{ publi

last_miles的博客 3526

RHCA III之路---EX436-1

由于ha这门课有大量命令需要在3个节点上同步执行.如果执行history会出现前面数字,复制多行会有些麻烦.lab环境是nodea,nodeb,nodec 考试环境是node1,node2,node3。就可以快速将历史命令实现可多行复制,当然也可以用awk进行分割,个人喜好随意。技巧只能加快答题速度,对考试得分帮助不大。确认3个红框内容一致,且没报错即可。再执行一个histrory。3个node节点上运行。这样就能1次复制3行。

Q先生 1002

【第一章】基于Simulink的控制器开发教程——目录

摘要:本文系统介绍了基于Simulink的控制器开发方法,涵盖PID、状态反馈、模型预测(MPC)、模糊控制、自适应控制等8类主流控制器。针对每种控制器,详细阐述了其基本原理、适用场景,并通过Simulink建模与仿真测试进行实践验证。文章采用"理论+实践"的结构,从算法设计到硬件实现全流程展开,为汽车、航空航天、工业控制等领域的控制器开发提供完整解决方案,最后通过应用对比与学习总结帮助读者掌握不同控制器的核心特性和应用场景。(149字)

熟悉MATLAB/fpga/RK3588/LABVIEW/protus/单片机/dsp/Multisim 387

springMVC学习笔记-请求映射,参数绑定,响应,restful,响应状态码,springMVC拦截器

springMVC是spring框架体系的一部分,功能和struts2类似,可以完美替代struts2,可以认为struts2已经被淘汰随着前后端分离和springboot的普及,我们不再需要关注xml配置,也不关注Model,View相关的接口返回值,此处只关注springMVC本身GET方式和POST方式是HTTP协议中两种发送请求的方式HTTP是基于TCP/IP的,关于数据如何在网络中传递的协议因此,GET和POST本质上都是基于TCP/IP的发送请求的方式,在底层上说,并没有本质的区别。

给自己的程序生涯留下一点痕迹 3927

RK3588平台开发系列讲解(项目篇)常见模型结构

📢 AI 模型常采用人工神经网络来模拟人脑神经的记忆和处理信号的能力。常见的人工神经网络类型有深度神经网络(Deep Neural Network,DNN)、卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network,RNN)等。

内核笔记 1757

Day25 springmvc返回值类型的json处理以及springmvc拦截器

返回值-json数据的处理 当用户发送ajax请求时,收到json数据 javaBean对像与json互转 返回值转json,添加@ResponseBody注解 注解加在方法上,springmvc可以自动将方法的返回对象转为json,发送给页面 参数转json,也要添加@ResponseBody注解 在形参的前面加上@RequestBody注解,该注解可以自动解析页面发送过来的json数据,解析完之后,自动的将json中的数据封装到形参对象 导入依赖 <dependency>

weixin_44014201的博客 495

Yolov8-pose关键点检测:loss优化 | LRM loss困难样本挖掘,提升难样本、遮挡物等检测精度

LRM loss应用到能够大幅提升pose遮挡物性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1715

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SpringMVC拦截器,json字符串输出,

一、拦截器intercepor    (1)Spring配置文件中的配置      <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springfram

luobotoutou123的博客 856

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【SpringMVC】——MVC概论、SpringMVC、控制器Controll、Restful风格、JSON以及拦截器知识总结

【SpringMVC】——MVC概论、SpringMVC、控制器Controll、Restful风格、JSON以及拦截器知识总结

shsjssnn的博客 1282

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

SpringMVC (注解、拦截器、json、Ajax)

SpringMVC 1、回顾MVC 1.1 什么是mvc MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的双向耦合。 MVC不是一种设计模式,MVC是一种架构模式。 **Model(模型):**数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型和或JavaBe组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao

Akai__csdn的博客 540

SpringMVC教程6[Restful和拦截器]

SpringMVC-Restful和拦截器 RESTful是一种软件设计规范,是客户端和服务端进行数据交互的一个规范。 早期使用JSP页面开发网页时,数据交互基本都是通过表单提交,然后通过内置对象传递。当HTML5兴起,移动互联网兴起,网站后端服务,不仅要考虑PC端的网页,也要考虑移动端数据的展示、小程序、HTML5页面等。如果需要多个终端(Android、iOS、小程序、Pad、HTML5页面)共用一个后端,一般...

波波烤鸭的博客 3486

SpringMVC处理Json、文件上传、拦截器

SpringMVC处理Json、文件上传、拦截器 : 处理JSON链接http://repo1.maven.org/maven2/com/fasterxml/jackson/core/ 步骤编写目标方法,使其返回 JSON 对应的对象或集合 12345@ResponseBody //SpringMVC对JSON的支持@RequestMa...

菜鸟清风http://www.hphblog.cn/ 383

【SpringMVC】拦截器及实例讲解

拦截器搞一下

Le vent se lève, il faut tenter de vivre 1482

SpringMVC(三)--------JSON、Ajax、拦截器、文件上传下载

SpringMVC(三)--------JSON、Ajax、拦截器、文件上传下载 8、Json交互处理 8.1 什么是JSON JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式,目前使用特别广泛 采用完全独立于编程语言的文本格式来存储和表示数据 简介和清晰的层次结构使得JSON成为理想的数据交换语言 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 在 JavaScript 语言中,一切都是对象。因此,任何JavaScript

钟情_的博客 313

SpringMVC返回值类型、请求转发和重定向、json交互、handler拦截器

handler返回值 handler方法可以是三种类型的返回值,用于不同场景 ModelAndView 返回值为视图和数据的包装类型,用于返回逻辑视图名称和视图需要展示的数据r 等同于在request中添加了属性,然后进行了请求转发 案例: @RequestMapping("/test") public ModelAndView test() { ModelAndView modelAndView = new ModelAndView(); //也会走视图解析器 modelAndVi

cx-young的博客 905

SpringMVC——处理json、文件上传和下载、拦截器、国际化

SpringMVC——处理json、文件上传和下载、拦截器、国际化一、springmvc处理json1.1 HttpMessageConverter介绍1.2 SringMVC响应json数据示例1.3 发送json数据给服务器示例1.4 HttpEntity、ResponseEntity 示例二、文件上传和下载三、拦截器3.1 自定义拦截器3.2 拦截器方法执行顺序3.3 拦截器源码分析(待补)四、国际化4.1 国际化简介4.2 步骤4.2 点击链接切换国际化 一、springmvc处理json 1.1

weixin_44630656的博客 853
上一篇: SpringMVC学习总结二——数据绑定
下一篇: Mybatis分页插件PageHelper的使用方法
Love_codes
博客等级 码龄8年 16粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值