部署到Tomcat下乱码

1、采用json数据交互,将将后台从数据库查询到的数据用StringBuffer穿成json。

2、设置了response编码格式UTF-8

3、最初用PrintWrite的write()方法把StringBuffer.toString()写出到前台

在eclipse下面没有任何问题(项目是UTF-8的),打成war包部署到Tomcat出现乱码,最初以为是Tomcat的配置问题,最后把eclipse中server项目下Tomcat配置复制到Tomcat-home/config下面。结果还是一样。最后推测是运行时的编码格式不一样,用StringBuffer是char数组实现的,怀疑是在字符串toChar的时候转码了。(查找源码未找到)

解决办法:

OutputStream out = res.getOutputStream();

AppVO vo = new AppVO(status, message, obj);

byte[] bytes = vo.getJson().getBytes("utf-8");

out.write(bytes);

据说byte[]要比char[]快,char存在编码问题。

如果有哪位大侠知道为什么会乱码。请告诉小弟。

时间: 2024-11-10 10:47:10

部署到Tomcat下乱码的相关文章

springboot项目部署到tomcat下步骤

1:项目改成war包,并去除springboot默认的tomcat <!-- springBoot的启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- provided 表明该包只在编译和测试的时候使用,去除默认的tomcat --> &l

Maven学习教程(七)------将web项目自动部署到tomcat下

一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Maven Project,如下图所示: 点击[next]如下图所示: 选择webapp,点击[next]如下图所示: 输入Group ID和 Artifact ID以及Package Group ID一般写大项目名称.Artifact ID是子项目名称. 例如Spring的web包,Group ID:org.springframework,artifactId:spring-web. Packag

JFinal 部署在 Tomcat 下推荐方法

原文:http://my.oschina.net/jfinal/blog/353062 经常有人在群里问 tomcat 下项目部署的问题,现写个简单的博文,希望能帮助到有需要的人. 首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任何差别.Java Web 项目在 Tomcat 下部署有一些不必要的坑需要避免,所以撰写此文方便大家绕过一些坑,以下部署以 linux 为例,windows 与此类似: 1:创建一个目录:   /var/w

eclispe或者myeclispe maven jar包不能部署到tomcat下

我们在做web开发是,经常都要在eclipse或者myeclipse中搭建web服务器,并将开发中的web项目部署到web服务器进行调试,在此,我选择的是tomcat服务器.之前部署web项目到tomcat进行启动调试都很正常,今天突然出现无法启动情况,启动过程报如下错误: java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener    at org.apache.catalin

Eclipse 导入外部项目无法识别为web项目并且无法在部署到tomcat下

1.进入项目目录,找到.project文件,打开. 2.找到...代码段,加入如下标签内容并保存: org.eclipse.jem.workbench.JavaEMFNature org.eclipse.wst.common.modulecore.ModuleCoreNature org.eclipse.wst.common.project.facet.core.nature org.eclipse.jdt.core.javanature org.eclipse.wst.jsdt.core.js

Spring boot打包为可部署在tomcat下运行的war文件的方法(使用Gradle、Intellij IDEA)

使用Gradle: dependencies { compile("org.springframework.boot:spring-boot-starter-web") providedCompile("org.springframework.boot:spring-boot-starter-tomcat")//此处使用providedCompile,则生成的jar包可放入tomcat内运行// compile("org.springframework.b

tomcat下部署两个工程时,只有一个可以访问,另一个出现404错误,该如何解决

在开发新项目的时候,有时候为了省时,直接把曾经做过的项目工程A拷贝成改名为B工程,然后再在B工程上进行功能的开发, 此时若把A,B工程同时部署到tomcat下,会发生只能访问A,B工程中的其中一个,而另一个会出现404错误,此时可参照如下方法解决: 步骤1:找到工程下的web.xml文件 步骤2:修改webAppRootKey的属性,使得两工程的不一致便可 A工程的webAppRootKey属性如下: <context-param> <param-name>webAppRootKe

[ExtJS5学习笔记]第三十一节 sencha extjs 5使用cmd生成的工程部署到tomcat服务器

本文地址:http://blog.csdn.net/sushengmiyan/article/details/42940883 本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ 使用sencha cmd build app 生成的工程,我们期望只使

项目部署到tomcat出错(tomcat运行时的JDK版本)

先展示一下错误,把项目部署到tomcat运行 出错原因 简单来说,就是执行代码的jdk版本 低于 编译的jdk版本 最后面的52.0是一种叫什么魔码,有各自对应的jdk版本. 其中52.0 对应的就是 jdk1.8版本. 解决办法 1)把编译的jdk版本降低:参考https://blog.csdn.net/qq_36769100/article/details/78880341 2)把执行代码的jdk版本提高: 我们错误是把项目放到tomcat中,运行时出错的,说明tomcat依赖的jdk版本太