ype Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.IllegalStateException: getOutputStream() has already been called for this response
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:528)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.IllegalStateException: getOutputStream() has already been called for this response
org.apache.catalina.connector.Response.getWriter(Response.java:608)
org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:200)
org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:189)
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:122)
org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:79)
org.apache.jsp.do_005fdownload_jsp._jspService(do_005fdownload_jsp.java:74)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:376)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.2 logs.
----------------------
由于jsp container在处理完成请求后会调用releasePageContet方法释放所用的PageContext object,并且同时调用getWriter方法,由于getWriter方法与在jsp页面中使用流相关的getOutputStream方法冲突,所以会造成这种异常,解决办法是:
只需要在jsp页面的最后加上两条语句:
out.clear();
out=pageContext.pushBody();即可(其中out,pageContext均为jsp内置对象!)
1<%@ page language="java" contentType="text/html; charset=utf-8"
2 pageEncoding="utf-8" import="com.jspsmart.upload.*"%>
3<%
4 String dfilename = request.getParameter("dfilename");
5
6 SmartUpload su = new SmartUpload();
7 su.initialize(pageContext);
8 su.setContentDisposition(null);
9 su.downloadFile("/upload/" + dfilename);
10 out.clear();
11 out = pageContext.pushBody();
12%>
注明:转自http://www.cppblog.com/fenglin/articles/126788.html
分享到:
相关推荐
使用jspSmartUpload实现文件上传下载,包含SmartUpload方法注解、上传示例及组件包
采用jspSmartUpload 组件实现的上传下载的完整实例 下载即可运行,但是这个压缩包不支持中文名称的文件下载功能,我上传了一个可以下载中文的不会乱码的jspSmartUpload 组件,网址:...
jsp实现的上传组件,共包括5个 类的源代码,一个上传文件的类用servlet实现的
jspSmartUpload实现文件上传下载
最近实验室做了一个项目,使用jspsmartupload来实现的文件的上传下载,原来在windows平台运行的挺好,但是后来系统移植到linux平台上,结果在上传或下载的文件名中有中文时就会出现乱码。后来查了网上一些人的解决...
jspSmartUpload.jar下载.rar
JspSmartUpload文件上传下载.zip
详细介绍了用jspsmartupload下载文件的几种方法,非常的实用!
JspSmartUpload上传文件实例,基于JspSmartUpload组件的文件上传实例,JspSmartUpload 上传类,在JSP中进行文件上传的类,内含文档和使用例子。这个在JSP编程环境下,使用频率还是挺高的,这个例子可帮助你在JSp环境...
1,只需要将文件夹upload拷在...3,有jsp文件上传与下载攻略是讲文件上传与下载的各种类中的函数含义的 4,主要包括完整的 jspsmartupload上传与下载,还有jspsmartupload的完整包,并且包括包中各种上传与下载的解释
使用JSP实现上传下载文件jspSmartUpload 里面讲述怎么用jsp实现
jspSmartUpload是一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点: 1、使用简单。在JSP文件中仅仅书写三五行java代码就可以搞定文件的上传或下载,方便。 2...
jspsmartupload上传下载 jspsmartupload上传下载 jspsmartupload上传下载
用几个简单的java语句操作java.io.BufferedInputStream和java.io.BufferedOutputStream,就能彻底解决jspSmartUpload乱码问题。... zip包中包含了jspsmartupload.jar和文件上传、下载示例代码,直接使用即可。
真正解决jspSmartUpload组件上传下载文件时中文乱码问题。以前在网上也找过!!!下载了些,都没能解决中文乱码问题!自己改了源代码,并做成jar包,直接用就可以。 另,我把File()类 改成了 SmartFile()类。详情请...
JSPSmartUpload.zip 下载JSPSmartUpload.zip 下载 包含例子
jspSmartUpload上传文件组件jspSmartUpload上传文件组件
使用jspSmartUpload组件在jsp中实现上传和下载
JspSmartUpload实现文件上传下载及Mysql函数实现列表分页功能
jsp servlet 上传例子 jspsmartupload jsp servlet 上传例子 jspsmartupload jsp servlet 上传例子 jspsmartupload