纸飞机

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

2007年1月20日 #

用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 纸飞机 阅读(646) | 评论 (0)编辑 收藏

     摘要:   阅读全文
posted @ 2007-10-26 13:48 纸飞机 阅读(543) | 评论 (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 纸飞机 阅读(280) | 评论 (0)编辑 收藏

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

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

     摘要:   阅读全文
posted @ 2007-07-20 15:44 纸飞机 阅读(5174) | 评论 (2)编辑 收藏

     摘要:   阅读全文
posted @ 2007-07-19 22:41 纸飞机 阅读(2047) | 评论 (3)编辑 收藏

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

最近在学习Hibernate这个框架,有找到一个比较好的资料,作者的blog名是分享Java快乐
website:http://blog.csdn.net/javamxj/
我有将其资料制作成chm电子档,这样学习起来比较方便,需要的朋友可通过如下链接下载:

 http://www.blogjava.net/Files/jxhkwhy/Eclipse快速上手Hibernate.rar

另以上的例子我都有重新做过一遍,期间也碰到不过问题,如果学习的朋友碰到问题可找我,我一定会尽力回复!

 

posted @ 2007-07-09 00:22 纸飞机 阅读(1229) | 评论 (5)编辑 收藏

在用Hibernate进行查询时,出现这样的错误:
Exception in thread "main" java.lang.NoClassDefFoundError: antlr/ANTLRException
郁闷了很久,因为以前一直这样做没什么问题啊,且Insert都正常,搞了半天,原来是Hibernate3.0与2.0有所不同
增加了antlr-2.7.6.jar这个包,将这个包加上就OK了!

posted @ 2007-07-08 09:42 纸飞机 阅读(6102) | 评论 (0)编辑 收藏

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

     摘要:   阅读全文
posted @ 2007-01-23 00:53 纸飞机 阅读(2062) | 评论 (2)编辑 收藏

     摘要:   阅读全文
posted @ 2007-01-21 23:37 纸飞机 阅读(1265) | 评论 (2)编辑 收藏

     摘要:   阅读全文
posted @ 2007-01-21 21:43 纸飞机 阅读(4213) | 评论 (2)编辑 收藏

     摘要:   阅读全文
posted @ 2007-01-20 01:54 纸飞机 阅读(13221) | 评论 (6)编辑 收藏