weblogic容器通过JSP页面输出图片出现乱码Tomcat下却正常
2013-07-10 16:20
615 查看
这几天一直被一个问题搞得头晕脑胀,本人项目里要实现这样一个功能,在报表里显示一个三维向量图(其实没那么神乎),于是需要写一个jsp页面来输出图片。
本来已经在tomcat下调试成功了的,但是到了现场调试功能的时候,就出现了乱码。于是楼主我使尽各种办法,终不得解。最后最后在公司一位大大的指导下,终于解决了。
原来是weblogic对文件处理规则和tomcat处理规则不一样,像下面这段代码:
对于tomcat容器来说,tomcat会自动处理成这样的。
也就是说,对于jsp文件,tomcat自动去掉换行和空格符号。
但是对于weblogic来说,就没有这样的处理规则。而是把
这样的代码以一个回车符输出,这个符号和下面输出图片的流自然就组合在一起了。图片流的开头多了这样一些换行符,自然就不能正常显示了。
而是出现乱码。
解决此问题的关键就在于,检查jsp文件里"<%%>"外是否有多余的回车符和空格,有的话,就去掉,然后把文件开头的声明改成如下的形式,这样就避免了输出多余的回车符。
正确的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(); } %>
相关文章推荐
- JSP页面通过URL传递中文参数出现中文乱码的解决方法
- JSP页面提交后中文字符出现乱码-tomcat下中文乱码问题
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- 为什么在tomcat6.0下显示正常的jsp页面在tomcat 7.0里中文全是乱码?怎么样才能解决
- jsp页面向action通过get方式传参,出现乱码的处理办法
- 通过后台控制前台页面输出,弹窗时出现乱码
- JSP 部属Tomcat jsp嵌套Java代码 通过JDBC获取数据库表通过Java在JSP页面输出
- servlet通过URL传参到jsp页面出现乱码问题的解决
- Struts输出流向jsp页面写入图片乱码
- 页面上通过地址栏传值时出现乱码的两种解决方法
- servlet中通过request.getRequestDispatcher跳转到jsp页面汉字乱码问题
- tomcat做服务器时,当通过项目名访问jsp页面的时候,网页中的相对路径无效
- JSP页面之间参数传递中文出现乱码
- jsp页面中url传参到后台出现乱码解决方案
- JSP获取页面参数时出现中文乱码
- JSP页面表单提交时出现中文乱码的解决方法
- JSP乱码(Tomcat和Weblogic)
- 升级tomcat后出现的页面录入框中文乱码问题解决方法
- 使用myeclipse插入数据到mysql 出现中文乱码|utf8乱码解决方案[适合tomcat部署的jsp应用]