这几天一直被一个问题搞得头晕脑胀,本人项目里要实现这样一个功能,在报表里显示一个三维向量图(其实没那么神乎),于是需要写一个jsp页面来输出图片。

本来已经在tomcat下调试成功了的,但是到了现场调试功能的时候,就出现了乱码。于是楼主我使尽各种办法,终不得解。最后最后在公司一位大大的指导下,终于解决了。

原来是weblogic对文件处理规则和tomcat处理规则不一样,像下面这段代码:

<%@page import="java.io.OutputStream"%>
<%@page import="javax.imageio.ImageIO"%>
<%@page import="java.awt.Color"%>
<%@page import="java.awt.Font"%>
<%@page import="java.awt.Graphics"%>
<%@page import="java.awt.image.BufferedImage"%>
<%@page import="java.io.BufferedOutputStream"%>
<%@page import="java.io.FileOutputStream"%>
<%@page import="java.util.Date"%>
<%@page import="java.util.Random"%>
<%@page import="com.sun.image.codec.jpeg.JPEGCodec"%>
<%@page import="com.sun.image.codec.jpeg.JPEGImageEncoder"%>

对于tomcat容器来说,tomcat会自动处理成这样的。

<%@page import="java.io.OutputStream"%><%@page import="javax.imageio.ImageIO"%>

也就是说,对于jsp文件,tomcat自动去掉换行和空格符号。

但是对于weblogic来说,就没有这样的处理规则。而是把

<%@page import="java.io.OutputStream"%>
<%@page import="javax.imageio.ImageIO"%>

这样的代码以一个回车符输出,这个符号和下面输出图片的流自然就组合在一起了。图片流的开头多了这样一些换行符,自然就不能正常显示了。

而是出现乱码。

解决此问题的关键就在于,检查jsp文件里"<%%>"外是否有多余的回车符和空格,有的话,就去掉,然后把文件开头的声明改成如下的形式,这样就避免了输出多余的回车符。

正确的jsp页面应该是这样的,如下图:

<%@page import="java.io.OutputStream"
%><%@page import="javax.imageio.ImageIO"
%><%@page import="java.awt.Color"
%><%@page import="java.awt.Font"
%><%@page import="java.awt.Graphics"
%><%@page import="java.awt.image.BufferedImage"
%><%@page import="java.io.BufferedOutputStream"
%><%@page import="java.io.FileOutputStream"
%><%@page import="java.util.Date"
%><%@page import="java.util.Random"
%><%@page import="com.sun.image.codec.jpeg.JPEGCodec"
%><%@page import="com.sun.image.codec.jpeg.JPEGImageEncoder"
%><%!/*** 增加文本* */private void addText(Graphics graphics, String[] zbm, int i, Integer[] bd,int wz) {/*…涉及到隐私…*/}
%><%try{String zfx = request.getParameter("zfx");String i1=request.getParameter("uaia");String i2=request.getParameter("ubib");String i3=request.getParameter("ucic");Double uaia = Double.valueOf(i1);Double ubib = Double.valueOf(i2);Double ucic = Double.valueOf(i3);int imageWidth = 224;//  图片的宽度int imageHeight = 175;// 图片的高度BufferedImage image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);Graphics graphics = image.getGraphics();graphics.setColor(Color.white);graphics.fillRect(0, 0, imageWidth, imageHeight);graphics.setColor(Color.black);/*涉及到隐私*/graphics.dispose();OutputStream outs = response.getOutputStream();ImageIO.write(image, "jpeg", outs);}catch(Exception e){e.printStackTrace();}
%>

weblogic容器通过JSP页面输出图片出现乱码Tomcat下却正常相关推荐

  1. 【已解决】对JSP页面传值中文乱码的简单解决方法

    很多java程序员在日常的工作中总会遇到对JSP页面传值中文乱码的情况,一些朋友由于操作不当,造成了很大的麻烦.本文将为大家讲解关于对JSP页面传值中文乱码的简单解决方法的内容. 方法/步骤 方法一: ...

  2. Java中文jsp页面_java中文乱码解决之道(七)—–JSP页面编码过程

    我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. 在上面代码中有两个地方存在编码:pageEncodi ...

  3. jsp页面读取txt乱码

    BUG: txt文件含有中文乱码显示 解决方法:打开txt文件,在"另存为"对话框中选择"UTF-8"格式保存,rebuild项目然后再运行 http://lo ...

  4. java jsp 输出_JSP Out.print()方法:输出数据到JSP页面

    print 方法用于输出数据到 JSP 页面. 语法1 print(boolean b) 该方法用于向 JSP 页面输出 Boolean 类型的布尔值.输出的内容将显示在 JSP 页面上. 参数说明: ...

  5. JSP 之输出九九乘法表

    JSP是一种建立在Servlet规范提供的功能之上的动态网页技术,允许在网页文件中嵌入java代码和jsp标记.Java 服务器页面 (Java Server Page ,JSP) 扩展名为 .jsp ...

  6. 解决:jsp 页面不全,response 内容不完整

    前言:今天 jsp 页面输出不完整这个问题困扰了我几个小时,终于发现问题并解决了. 环境: tomcat 8.0.17 x64 jsp springmvc vue 问题: 本来页面正常,但加了几行代码 ...

  7. JAVA查询数据库并显示jsp_java servlet数据库查询并将数据显示到jsp页面

    需要的jar包:mysql-connector-java.jar build path只是个jar包的引用,部署的时候想不丢包最好还是手动拷贝到对应项目的lib文件下. 在try{}中定义的变量为局部 ...

  8. JAVA里的jsp网页背景_【JavaWeb】JSP 页面

    JSP 页面 简介 JSP(Java Server Pages),即 Java 的服务器页面.它的主要作用是代替 Servlet 程序回传 HTML 页面的数据,因为 Servlet 程序回传 HTM ...

  9. 一个按钮显示九九乘法表html,在JSP页面显示九九乘法表

    pageEncoding="UTF-8"%> Insert title here { for (int j = 1; j <=i; j++) { int s=j*i; ...

最新文章

  1. 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - A. 网友年龄
  2. c#金额转换成中文大写金额
  3. 索引原理及项目中如何使用索引实例分析
  4. python 生成器装饰器_4.python迭代器生成器装饰器
  5. C#类、接口、虚方法和抽象方法
  6. 读ImageCropper源码
  7. explain mysql执行顺序_面试前必须知道的MySQL命令【explain】
  8. 微信小程序 上传本地图片
  9. sql server2000的1433端口不通怎么办
  10. Java遍历文件夹及图像缩放批处理
  11. 区块链开发主流编程语言居然是Go语言
  12. windows下装ipython
  13. 上线啦,可以定时周期性提醒群成员的机器人
  14. 《長江圖》:一首關於一切的魔幻愛情史詩
  15. volatile限定符——C++讲解
  16. [架构之路-160]-《软考-系统分析师》-10-系统分析-7-数据与数据流程分析、需求规格说明书
  17. xampp v3.2.2 php版本,xampp 3.2.2下载
  18. 手工命令行打包java工程为war包
  19. 信息时代的必修课:冗余度(善用信息冗余成为沟通的高手)
  20. 从程序员之死看 IT 人士如何摆脱低情商诅咒——转载自CSDN官方博客

热门文章

  1. 第十四届蓝桥杯大赛软件赛省赛(C/C++ 大学A组)
  2. 职中计算机应用高考项目,新邵职业中专计算机应用专业对口高考习题
  3. git的分支管理(详细版)
  4. 为什么不使用java.util.logging?
  5. 使用geocoder_你在哪? 使用Geocoder PHP实现地理位置
  6. 初中计算机课程教案模板,初中体育课电子表格教案模板(共12篇)
  7. 相位解包裹 matlab,四步移相法提取相位(相位解包裹)基础问题
  8. OpenGL渲染视频(二)
  9. 《俄罗斯方块》发布 | 历史上的今天
  10. 视频接口大全(HDMI、DVI、VGA、RGB、分量、S端子、USB接口)