SpringMVC与fastjson整合并同时解决中文乱码问题
原文地址:
http://xyly624.blog.51cto.com/842520/896704
作者: gdonline
标签:SpringMVC json FastJSON
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://xyly624.blog.51cto.com/842520/896704
今天试着把SpringMVC与fastjson整合了下,经测试也能解决json含中文乱码的问题,特此分享之。我也是初用,详细文档请见官网。
转换类:
public class MappingFastJsonHttpMessageConverter extends
AbstractHttpMessageConverter<Object> {
public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
private SerializerFeature[] serializerFeature;
public SerializerFeature[] getSerializerFeature() {
return serializerFeature;
}
public void setSerializerFeature(SerializerFeature[] serializerFeature) {
this.serializerFeature = serializerFeature;
}
public MappingFastJsonHttpMessageConverter() {
super(new MediaType("application", "json", DEFAULT_CHARSET));
}
@Override
public boolean canRead(Class<?> clazz, MediaType mediaType) {
return true;
}
@Override
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
return true;
}
@Override
protected boolean supports(Class<?> clazz) {
throw new UnsupportedOperationException();
}
@Override
protected Object readInternal(Class<?> clazz, HttpInputMessage inputMessage)
throws IOException, HttpMessageNotReadableException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i;
while ((i = inputMessage.getBody().read()) != -1) {
baos.write(i);
}
return JSON.parseArray(baos.toString(), clazz);
}
@Override
protected void writeInternal(Object o, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException {
String jsonString = JSON.toJSONString(o, serializerFeature);
OutputStream out = outputMessage.getBody();
out.write(jsonString.getBytes(DEFAULT_CHARSET));
out.flush();
}
}
SpringMVC关键配置:
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<!-- fastjosn spring support -->
<bean id="jsonConverter" class="com.alibaba.fastjson.spring.support.MappingFastJsonHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
<property name="serializerFeature">
<list>
<value>WriteMapNullValue</value>
<value>QuoteFieldNames</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
参考:OSChina FastJSON官网
分享到:
相关推荐
在"springmvc+fastjson demo"中,这个项目演示了如何在 Spring MVC 应用中集成并使用 Fastjson。以下是一些关于这个主题的关键知识点: 1. **Spring MVC 概述**:Spring MVC 通过 DispatcherServlet 接收 HTTP 请求...
SpringMVC解决中文乱码问题 SpringMVC 框架中,中文乱码问题是常见的问题之一。解决这个问题的关键是正确地配置字符编码。下面我们将详细介绍 SpringMVC 中解决中文乱码问题的思路和方法。 配置文件中的字符编码 ...
在IT行业中,SpringMVC、Fastjson和Swagger是三个非常重要的技术组件,它们分别用于构建Web应用程序、数据序列化和API文档化。本示例源码整合了这三个工具,为开发者提供了一个高效、易用的开发环境。让我们深入探讨...
本文将详细介绍如何在Spring MVC项目中整合FastJson,实现RESTful风格的API。 首先,我们需要在项目中引入Spring MVC和FastJson的相关依赖。在Maven的pom.xml文件中添加以下依赖: ```xml <groupId>org.spring...
SpringMVC 配合 Fastjson 的内存马利用与分析 SpringMVC 是一种基于 Java 的实现了 Web MVC 设计模式的请求驱动类型的轻量级 Web 框架,即使 用了 MVC 架构模式的思想,将 web 层进 行职责解耦,基于请求驱动指的...
Fastjson 是阿里巴巴开源的一个高性能的JSON库,它...然而,需要注意的是,虽然Fastjson在性能上表现出色,但在安全方面存在一些潜在问题,因此在生产环境中使用时,建议定期关注Fastjson的安全更新,确保其安全性。
- **安全性考虑**:FastJson存在一些安全问题,如不合理的配置可能导致DoS攻击。因此,在生产环境中务必关注FastJson的安全更新,并确保使用最新版本。 通过以上步骤,你就可以在Spring MVC项目中成功整合FastJson...
本文将详细介绍SpringMVC与Hibernate整合所需的jar文件以及它们在整合过程中的作用。 首先,我们需要理解SpringMVC的核心组件。它包括DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、...
为了解决这一问题,FastJson提供了一个解决方案,即通过禁用循环引用检测。具体操作是通过在序列化时指定SerializerFeature.DisableCircularReferenceDetect枚举常量来实现。通过这种方式,FastJson会避免在JSON字符...
ssm-springMVC-整合Quartz(解决了无法注入service问题).doc
本文将深入探讨SpringMVC与Hibernate的整合过程以及其中涉及的关键知识点。 1. **SpringMVC框架**:SpringMVC是Spring框架的一个模块,负责处理Web请求。它提供了Model-View-Controller模式的实现,使得开发者能够...
SpringMVC与MyBatis整合时,会通过@MapperScan注解扫描指定包下的Mapper接口,并将其与XML文件关联。 4. **Service层与DAO层**:在业务逻辑层(Service层),我们可以创建服务接口和实现类,其中调用DAO层的方法来...
《SpringMVC与MyBatis整合详解》 在现代企业级Web开发中,SpringMVC和MyBatis是两个非常重要的技术组件。SpringMVC作为Spring框架的一部分,提供了强大的MVC(Model-View-Controller)架构支持,而MyBatis则是一个...
这篇描述提到的是一个适合初学者的登录Demo,它包含了完整的SpringMVC与Hibernate的整合示例,便于理解和实践。 1. **SpringMVC框架**:SpringMVC是Spring框架的一部分,主要负责处理HTTP请求,将请求分发到对应的...
SSM(Spring、SpringMVC和MyBatis)整合是Java Web开发中常见的技术栈,它结合了Spring框架的强大功能,SpringMVC的优雅请求处理,以及MyBatis的灵活数据库操作。本项目是一个入门级别的实例,旨在帮助初学者理解和...
SpringMVC与Flex整合是构建富互联网应用程序(RIA)的一种常见技术组合,它允许开发者创建交互性强、用户体验良好的Web应用。下面将详细讲解这个项目的背景、核心概念以及整合过程。 **1. SpringMVC框架** ...
设置视图解析规则,确保SpringMVC能够正确地找到并渲染视图。 6. **测试和部署**:完成上述配置后,进行单元测试和集成测试,确保各部分功能正常。最后,将项目打包成WAR文件,部署到服务器,如Tomcat或Jetty。 ...
SpringMVC post请求中文乱码问题解决 SpringMVC 框架中,post 请求中文乱码问题是常见的错误之一。该问题的出现主要是由于服务端和客户端之间的编码不一致所导致的。例如,在 HTML 表单中提交中文数据时,如果...
1. **创建Maven项目**:首先,我们需要创建一个Maven工程,并在pom.xml文件中添加Spring、SpringMVC、MyBatis以及相关依赖的坐标。 2. **配置Spring**:创建Spring的配置文件(如applicationContext.xml),配置...