纸飞机

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  22 随笔 :: 28 文章 :: 30 评论 :: 0 Trackbacks

2007年10月23日 #

用jspsmart下载文件异常(tomcat正常,weblogic不行)

用jspsmart下载文件JSP代码如下:
<%@ page contentType="text/html;charset=GBK" import="com.jspsmart.upload.*" %><%
//取得服务器存放文件的路径
String reportTemplatePath = (String)session.getAttribute("reportTemplatePath");
//文件名
String filename = reportTemplatePath + "/" + request.getParameter("filename");
filename = new String(filename.getBytes(),"ISO-8859-1");
// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
// 初始化
su.initialize(pageContext);
//设定contentDisposition为null以禁止浏览器自动打开文件,保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
//doc时,浏览器将自动用word打开它。扩展名为pdf时,浏览器将用acrobat打开。
su.setContentDisposition(null);
// 下载文件
su.downloadFile(filename);
%>在tomcat中运行正常。
在weblogic中运行抛出如下异常.
文件可以下载,但特别慢并且打开是乱码。
<2004-2-19 下午09时14分34秒> <Error> <HTTP> <101019> <[ServletContext(id=325867,
name=csrc,context-path=/csrc)] Servlet failed with IOException
java.net.ProtocolException: Exceeded stated content-length of: '548352' bytes
        at weblogic.servlet.internal.ServletOutputStreamImpl.checkCL(ServletOutp
utStreamImpl.java:220)
        at weblogic.servlet.internal.ServletOutputStreamImpl.write(ServletOutput
StreamImpl.java:170)
        at com.jspsmart.upload.SmartUpload.downloadFile(SmartUpload.java:986)
        at com.jspsmart.upload.SmartUpload.downloadFile(SmartUpload.java:355)
        at com.jspsmart.upload.SmartUpload.downloadFile(SmartUpload.java:336)
        at jsp_servlet._test.__do_download._jspService(__do_download.java:102)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1058)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:401)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:306)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:5445)
        at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
eManager.java:780)
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3105)
        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2588)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
>

解决方法:把所有<%和%>之外的空格字符都取掉就好了.参考如下:
<%@ page contentType="text/html;charset=GBK" import="com.jspsmart.upload.*" %><%
//取得服务器存放文件的路径
String reportTemplatePath = (String)session.getAttribute("reportTemplatePath");
//文件名
String filename = reportTemplatePath + "/" + request.getParameter("filename");
filename = new String(filename.getBytes(),"ISO-8859-1");
// 新建一个SmartUpload对象
SmartUpload su = new SmartUpload();
// 初始化
su.initialize(pageContext);
//设定contentDisposition为null以禁止浏览器自动打开文件,保证点击链接后是下载文件。若不设定,则下载的文件扩展名为
//doc时,浏览器将自动用word打开它。扩展名为pdf时,浏览器将用acrobat打开。
su.setContentDisposition(null);
// 下载文件
su.downloadFile(filename);
%>

 

posted @ 2008-06-02 16:04 纸飞机 阅读(3788) | 评论 (2)编辑 收藏

GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。

至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8节省空间。

GBK包含全部中文字符,
UTF-8则包含全世界所有国家需要用到的字符。

GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)

UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。
比如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,而无需他们下载IE的中文语言支持包。

所以,对于英文比较多的论坛 ,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节。

请注意:UTF-8版本虽然具有良好的国际兼容性,但中文需要比GBK/BIG5版本多占用50%的数据库存储空间,因此并非推荐使用,仅供对国际兼容性有特殊要求的用户使用。</DIV>
简单地说:
       对于中文较多的论坛,适宜用GBK编码节省数据库空间。
       对于英文较多的论坛,适宜用UTF-8节省数据库空间。

posted @ 2008-05-22 14:07 纸飞机 阅读(443) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2008-05-15 21:41 纸飞机 阅读(645) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2007-10-26 13:48 纸飞机 阅读(541) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2007-10-26 13:47 纸飞机 阅读(1447) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2007-10-26 13:45 纸飞机 阅读(303) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2007-10-26 13:40 纸飞机 阅读(343) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2007-10-26 13:38 纸飞机 阅读(694) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2007-10-24 23:38 纸飞机 阅读(279) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2007-10-23 10:10 纸飞机 阅读(643) | 评论 (0)编辑 收藏