可能是重复提交
在某个地方有submit等的信息吗?甚至有时可以用类似out.clear()的语句来关闭某些流
在某个地方有submit等的信息吗?甚至有时可以用类似out.clear()的语句来关闭某些流
解决方案 »
- 帮忙看看这是什么问题--Hibernate
- 调查下spring的使用情况!!!!!
- jsp调用上传到服务器的文件
- hibernate配置问题,请帮助一下哈!!
- 一个比较好玩的在线编译器,看你能通过这道题不
- 读写XML的代码。随便发的贴而已!
- 谁知道如何解决这个问题? NO Serializer found for class java:com.sune365.platform.note.Note
- struts 配置连接池 有点问题 帮我看看 分析下
- 100分求《Java网络程序设计:J2EE(含1.4最新功能)》一书的光盘代码
- java中的路径连接字符“/”&“\”????
- spring和orm一起用,报错,请高人指点一下,是什么地方出错了?
- 搭建的SSI框架总是报404错误
response.setContentType("application/octet-stream");//设置文件类型
吗??文件类型参考
http://download.csdn.net/download/q6332139/3666496
由于你download.do的代码没有提供所以不好精确判断
2012-08-14 14:48:17.709:WARN::/software/download.do
java.lang.IllegalStateException: Committed你的service做完后,action还做了什么吗??
public String softwareDownload() {
this.service.softwareDownload(software);
return ActionRSEnum.SUCCESS.getRS();
}service层的代码如下:
@Override
public void softwareDownload(Software software) {
HttpServletResponse response = ServletActionContext.getResponse();
try {
SoftwareBean softwareBean = new SoftwareBean();
SoftwareBaseBean softwareBaseBean = new SoftwareBaseBean();
softwareBean.setSoftwareid(software.getSoftwareid().toString());
softwareBaseBean = softwareInfo(softwareBean);
String downloadPath = softwareBaseBean.getDownloadPath ;
String fileName = softwareBaseBean.getFileName ;
File file = new File(downloadPath);
FileInputStream in = new FileInputStream(file);
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
OutputStream out = response.getOutputStream();
int len = 0;
byte buffer[] = new byte[1024];
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}我不用加
response.setContentType("application/octet-stream");
也可以下载jar,png等文件类型的文件
out.close之后我也没做什么操作啊
我是通过传进去一个id,根据id获取路径信息,利用绝对路径下载的
可以实现下载功能,但就是抛异常,不解啊
<a class="buttonnormal" href="javascript:void(0);" onclick="window.location='${pageContext.request.contextPath }/software/download.do?software.softwareid=${softwareid}'">下载</a></td>
action层:
public String softwareDownload() {
this.service.softwareDownload(software);
return ActionRSEnum.SUCCESS.getRS();
}
service层:
@Override
public void softwareDownload(Software software) {
HttpServletResponse response = ServletActionContext.getResponse();
try {
SoftwareBean softwareBean = new SoftwareBean();
SoftwareBaseBean softwareBaseBean = new SoftwareBaseBean();
softwareBean.setSoftwareid(software.getSoftwareid().toString());
softwareBaseBean = softwareInfo(softwareBean);
String downloadPath = EnumSystemFolder.STAFSERVERSERVICEFOLDER.getValue().getPath() + "\\" + softwareBaseBean.getSoftwarename() + "\\" + softwareBaseBean.getSoftwarename() + "." + softwareBaseBean.getSoftwareversion() + "." + softwareBaseBean.getSoftwaretype().toLowerCase();
String fileName = softwareBaseBean.getSoftwarename() + "." + softwareBaseBean.getSoftwareversion() + "." + softwareBaseBean.getSoftwaretype().toLowerCase();
File file = new File(downloadPath);
FileInputStream in = new FileInputStream(file);
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
OutputStream out = response.getOutputStream();
int len = 0;
byte buffer[] = new byte[1024];
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
action.xml配置:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="software" extends="struts-default" namespace="/software">
<action name="download" class="webui.action.SoftwareAction" method="softwareDownload">
<result name="success">
/Jsp/software/software_list.jsp
</result>
<result name="error">/Jsp/error/error.jsp</result>
</action>
</package>
</struts>
这里不需要用DAO层
我是通过前台传进去id,根据ID获得绝对路径进行下载功能的,能够实现下载功能,可就是抛出异常:2012-08-14 16:25:33.246:WARN::Committed before 500 STREAM
2012-08-14 16:25:33.246:WARN::/software/download.do
java.lang.IllegalStateException: Committed
at org.mortbay.jetty.Response.resetBuffer(Response.java:1024)
at org.mortbay.jetty.Response.sendError(Response.java:240)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:852)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:534)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:432)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at webui.filter.FilterIsLogin.doFilter(FilterIsLogin.java:34)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:440)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
out.close之后我也没做什么啊我不用加
response.setContentType("application/octet-stream");//设置文件类型
也可以下载jar,png等格式的文件类型啊还有,我也并没有用到submit提交表单的,是通过访问连接实现的
我没找到flb7751415451所说的out.clear()方法啊,这个怎么用的?
public String softwareDownload() {
this.service.softwareDownload(software);
return ActionRSEnum.SUCCESS.getRS();
}return这里使用null试试