SpringMVC:请求乱码问题处理和json乱码解决方案

【SpringMVC】五、Json数据交互 Json乱码处理 Jackson Fastjson【狂神篇】 这里是小编拿到的学习资源,其中包括“中高级Java开发面试高频考点题笔记300道.pdf”和“Java核心知识体系笔记.pdf”文件分享,内容丰富, 阅读详情

SpringMVC

javaweb中的过滤器

大家在学习javaweb的时候经常和什么打交道呢?请求与响应,但是每每当我们快乐的敲击键盘时,
页面给出的回应确实该死的乱码,实在令人气愤!
就在在昨天处理SpringMVC练习的时候,发现乱码,
当时会心一笑:
我:小样,哥学过过滤器的想不到吧!
页面:想不到吧老子不吃这一套!
当我设置好请求响应的编码格式和配置好过滤器后心潮澎湃重启tomcat结果=-=,给我来了个熟悉的乱码

不要急,万能的Spring以及给我们准备好的新的过滤器!
通过继续学习课程我迎来了一个全新的过滤器!SpringMVC提供给我们的过滤器,让我们可以只编写配置文件就可以解决编码问题

SpringMVC中的过滤器!!

使用方法和我们的过滤器一样,都是在web.xml中配置,便捷之处就是我们可以不用自己编辑过滤器,SpringMVC都给我们写好了
可以加入直接使用

  <filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
  </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

唯一的配置区别就是过滤器的class变成了Spring包中的字符编码过滤器,
使用之后就有告别了这万恶的乱码!芜湖!

接下来是json乱码问题!!!我使用的是jackson和阿里的fastjson

json中出现乱码,因为编码问题的原因,我们在mvc下传递json就会出现中文是??的状况,这个问题呢我学到两种解决方案

第一种是相对原生态一点的

在我们的映射注解 @RequestMapping("/t1")中有个功能叫produces
我们可以通过设置这个produces的属性来做到json的字符编码设置

第二种是用SpringMVC配置文件中来完成

这个相对上一个方法来说,一劳永逸,只需要配置一次,这个项目都不需要在去配置,一般用到json我建议就把这段配置放到Spring的配置文件中

    <mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <constructor-arg value="utf-8"></constructor-arg>
        </bean>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="objectMapper">
                <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
                    <property name="failOnEmptyBeans" value="false"/>
                </bean>
            </property>
        </bean>
    </mvc:message-converters>
    </mvc:annotation-driven>

今天又是美好的一天,加油!

SpringBoot处理JSON数据示例代码 SpringBoot处理JSON数据示例代码,SpringBoot处理JSON数据示例代码 立即下载

相关推荐

详解Spring MVC3返回JSON数据中文乱码问题解决

本篇文章主要介绍了Spring MVC3返回JSON数据中文乱码问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

【Spring-MVC】 配置过滤器以及Json

文章目录12 配置过滤器12.1 在web.xml配置12.2 Java类配置13 Json数据13.1 简介13.2 结构13.3 Jackson13.3.1 导入依赖13.3.2 SpringMVC中的简单使用13.3.2.1 响应对象13.3.2.2 响应集合13.3.3 局部处理时间响应13.3.4 全局处理时间响应13.3.4.1 基于配置文件13.3.4.2 基于Java类 12 配置过滤器 在SpringMVC中我们依然可以使用过滤器来进行一些处理,我们可以像在Servlet阶段在web.x

MY9_19的博客 962

AMD MI355X与NVIDIA B200在GLM5.2大模型推理性能与成本对比分析

在 AI 推理硬件选型中,成本与性能的平衡一直是技术决策的核心难点。AMD 最新发布的 CDNA 4 架构 MI355X 加速卡与 NVIDIA Blackwell 架构的 B200 在 GLM5.2 这类千亿参数大模型上的表现,直接关系到企业部署私有化模型或提供推理服务的经济性。实际测试数据显示,在 32 tok/s/user 的交互性设定下,单张 MI355X 能够达到 1369 tok/s 的吞吐量,虽然略低于 B200 的 1756 tok/s,但每百万 token 成本仅为 0.30 美元,比 B

weixin_28221501的博客 294

SpringMVC(JSON数据转换,乱码问题)

SpringMVC(JSON数据转换,乱码问题)

m0_57552646的博客 620

迪文DGUSII串口屏中文显示实战:手把手教你制作16x16点阵字库

本文提供了一份迪文DGUSII串口屏16x16点阵中文字库制作的完整实战指南。从显示原理、字体选择与参数设置,到使用FontLib Make工具生成字库文件,再到部署、调用及存储空间优化,手把手教你解决中文显示难题,确保界面文字既美观又稳定。

weixin_29190573的博客 154

手把手教你用 Docker 构建自己的 CentOS 基础镜像

目录一、准备CentOS基础镜像二、撰写Dockerfile三、构建Docker镜像四、生成Docker容器 相信码农们经常会听说:虚拟机将成为历史,Docker才是未来 !!! 事实如此,现在大部分公司都在用 Docker 技术,想拥有自己的 Docker 专属镜像,那么 Dockerfile 就是入门,现在让我们一起来看一下 ------ 构建 Docker 镜像的全过程。 好文章 记得收藏...

Nick.Peng's Blogs 1万+

JSON乱码问题之终极解决办法

我们在springmvc中使用json经常出现乱码格式 如下图: 解决办法一: 我们可以在@RequestMapping()中配置添加produces = "application/json;charset=utf-8",乱码得以解决。但是也出现一个问题,就是每次我们编写@RequestMapping()都需要添加produces = "application/json;charset=utf-8" 解决办法二: 所以我们可以在springmvc的配置文件上添加一段消息StringHttpMes

qq_42696004的博客 1万+

QFN封装芯片手工焊接实战:从焊盘处理到拖焊技巧

本文详细介绍了QFN封装芯片手工焊接的全过程,从焊盘处理到拖焊技巧,再到常见问题的现场修复方法。通过实战经验分享,帮助工程师和DIY爱好者掌握0.5mm小间距QFN芯片的焊接技术,提升焊接成功率和质量。重点讲解了垂直与平行拖焊手法的对比应用,以及焊后清理与质量检验的关键步骤。

weixin_42652674的博客 532

SpringMVC 返回 json 字符串中文乱码

原因 最近在写一些小的Demo案例,但是被AJAX的 json 返回乱码折磨了好久。最后通过研究StringHttpMessageConverter源代码发现,开发者很坑的使用了”ISO-8859-1”作为默认编码。经过代码测试,下面给出四种方法解决SpringMVC 返回 json 字符串中文乱码。(本文spring版本4.3.11.RELEASE) public class Str...

wenteryan的博客 7500

ZBrush 2021来了

这次给大家带来的是:zbrush2021.1.1 win安装教程 1.下载压缩包之后解压到文件夹当中,然后打开ZBrush_2021_Installer.exe进行软件安装, 如下图 2.在这里我们保持默认的简体中文版即可,然后点击确认,如下图 3.第三步我们点击前进即可,如下图 4.第四步我们来到许可协议,在这里我们点击我接受此协议,然后点击前进,如下图 5.第五步我们来到安装目录,在这里我们可以设置安装路径,如下图 6.在这里我将安装目录修改安装到E盘为例,然后点击下一

3D游戏建模 1187

避坑指南:Python模拟抖音扫码登录时,那些你可能会遇到的‘Referer’和‘Token’校验问题

本文深入解析Python模拟抖音扫码登录时常见的Referer校验与Token失效问题,提供五大陷阱的解决方案。从动态fp参数生成到Referer校验策略,再到Token生命周期管理,手把手教你破解抖音登录接口的反爬机制,助力开发者高效完成自动化登录。

weixin_42573113的博客 780

Java通用处理方法——Json格式乱码处理方式

添加到配置文件:springmvc-servlet.xml <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMes...

一名程序猿的博客 3793

YOLOv8 超参数调优教程! 使用Ray Tune进行高效的超参数调优!

YOLOv8超参数调优教程!😎 使用Ray Tune进行高效的超参数调优!

Coding... 1万+

Json传输出现中文乱码的问题

Json传输出现中文乱码的问题

weixin_61620939的博客 8686

Unreal5从入门到精通之如何实现移动端触屏滑动手势

随着移动设备的普及,越来越多的游戏和应用选择在移动平台上发布。Unreal Engine 5(UE5)作为一款强大的游戏引擎,提供了丰富的工具和功能,帮助开发者打造出色的移动体验。UE5不仅提升了图形质量,还大幅简化了开发流程,使得开发者能够更专注于游戏设计和用户体验。在移动游戏中,触屏滑动手势是用户与应用互动的主要方式之一。然而,许多开发者在实现这些功能时常常遇到困难。为了填补这一知识空白,本篇文章将详细介绍如何在UE5中实现移动端触屏滑动手势,帮助你从入门到精通,提升你的开发技能。

TxNet 1136

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SpringMVC核心功能解析:JSON处理、中文乱码与数据回传

在Java Web开发中,SpringMVC框架是实现前后端数据交互的核心组件。其通过HttpMessageConverter机制处理JSON数据转换,支持@RequestBody/@ResponseBody注解实现自动化序列化与反序列化。字符编码问题作为Web开发的常见痛点,需要统一配置过滤器或Servlet容器参数确保UTF-8编码一致性。模型数据绑定技术(Model/ModelMap/ModelAndView)和Flash属性构成了视图层数据传递的基础方案。针对电商等高并发场景,Jackson的预编译

aodiyi6351的博客 426

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

狂神说SpringMVC06:Json交互处理

狂神说SpringMVC系列连载课程,通俗易懂,基于Spring5版本(视频同步),欢迎各位狂粉转发关注学习。未经作者授权,禁止转载Json什么是JSON?JSON(JavaScript...

狂神说 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SpringMVC系列十: 中文乱码处理与JSON处理

SpringMVC系列十: 中文乱码处理与JSON处理

你好, 我在学java的博客 1255

SpringMVC接口返回Json字符串中文乱码问题

乱码演示 解决方式 方式1:对应的RequestMapping设置编码格式 方式2:在web.xml添加JSON乱码问题配置 乱码演示 我的接口 package com.lingaolu.controller; import com.lingaolu.bean.Student; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; .

林高禄 1681

springMVC数据处理-请求,接收,乱码,json格式

springMVC数据处理-请求,接收,乱码,json格式

醉卧雕龙舫,的博客 960

springMVC返回json数据乱码问题及@RequestMapping 详解

@RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 RequestMapping注解有六个属性,下面我们把她分成三类进行说明。 1、 value, method; value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将

享受技术!享受快乐! 2万+

springmvc中文乱码解决,包括接收乱码和发送乱码

一、springmvc请求中文乱码 1、post请求乱码            在web.xml加入filter过滤,注意,只能解决浏览器端发送post请求,controller接收中文乱码的情况。 &lt;!-- POST字符编码过滤 --&gt; &lt;filter&gt; &lt;description&gt;字符集过滤器&lt;/description&gt; ...

quite64的博客 3085

SpringMVC:RestFul 风格、实现请求转发和重定向、乱码问题解决、前后端传递参数、JSON 字符串

介绍了 RestFul 风格、使用 SpringMVC 实现请求转发和重定向、乱码问题出现的几种情况以及解决方法、后端接收前端请求参数的三种情况、数据回显的三种方式,以及 JSON 字符串的详细内容

taiyang3285的博客 697

springmvc返回参数和处理中文乱码

springmvc返回参数 创建一个maven项目,导入jar包,在web创建jsp包,包中创建jsp页面 <context:component-scan base-package="com.lanou"></context:component-scan> <!--内部视图资源解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&

qq_39095899的博客 759

解决SpringMvc后台接收json数据中文乱码问题

解决SpringMvc后台接收json数据中文乱码问题 原因分析 使用ajax从前台页面传输数据到后台controller控制器的时候,出现中文乱码 其实乱码问题出现的原因,就是由于默认的tomcat配置,接收请求是以ISO-8859-1来转码,导致中文出现了乱码问题,只要能正确的以utf-8来转码,则可以解决乱码问题。 普通数据传输,从jsp页...

Frankltf的博客 451
上一篇: SpringMvc:spring中的请求处理过程原理分析
下一篇: SpringMVC:过滤器和拦截器的区别和实现原理
冷环渊
博客等级 码龄7年 1130粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷环渊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值