当前页面: 开发资料首页 → JSP 专题 → 比较难的问题,出现错误:java.lang.IllegalStateException: Cannot forward a response that is already commited
比较难的问题,出现错误:java.lang.IllegalStateException: Cannot forward a response that is already commited
摘要: 比较难的问题,出现错误:java.lang.IllegalStateException: Cannot forward a response that is already commited
我有一段程序.就是打开在服务器端的一个文件
我有一个文件列表,用户在点击某个文件时候,我新打开一个窗口,然后把地址转向这个文件的位置.
我的代码如下:
getResponse().reset();
if(getResponse().isCommitted())
{
System.out.println("相应已经提交!");
}
else
{
String filename=downfile.getFileInfo().getFileName();/*取得选择要打开的文件名称*/
filename = URLEncoder.encode(filename,"UTF-8");/*把中文文件名称用UTF-8进行加码*/
getResponse().sendRedirect(getRequest().getContextPath()+"/file/download/"+filename);
}
我的客户端打开文件没得问题,文件可以正常查看,但是在服务器的控制太每打开一次文件就报一次错.
错误消息如下:
<2006-10-26 下午01时44分49秒 CST>
<[ServletContext(i
d=30393879,name=CMSWEB,context-path=/CMSWEB)] Servlet failed with Exception
java.lang.IllegalStateException: Cannot forward a response that is already commi
tted
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispat
cherImpl.java:124)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.superForward(Page
FlowRequestProcessor.java:1301)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor$DefaultHttpRedire
ctor.forward(PageFlowRequestProcessor.java:1317)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.doForward(PageFlo
wRequestProcessor.java:1199)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.processForwardCon
fig(PageFlowRequestProcessor.java:1093)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:279)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.process(PageFlowR
equestProcessor.java:650)
at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.process(AutoRegi
sterActionServlet.java:527)
at com.bea.wlw.netui.pageflow.PageFlowActionServlet.process(PageFlowActi
onServlet.java:152)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:315)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispat
cherImpl.java:318)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.superForward(Page
FlowRequestProcessor.java:1301)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor$DefaultHttpRedire
ctor.forward(PageFlowRequestProcessor.java:1317)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.doForward(PageFlo
wRequestProcessor.java:1199)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.process(PageFlowR
equestProcessor.java:637)
at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.process(AutoRegi
sterActionServlet.java:527)
at com.bea.wlw.netui.pageflow.PageFlowActionServlet.process(PageFlowActi
onServlet.java:152)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:419)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
va:27)
at CMSJAVACTRL.user.filter.SecureFilter.doFilter(SecureFilter.java:103)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.ja
va:27)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:6458)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2630)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>
高手来指点一下!
高手来指点一下!
大家来帮忙啊
你服务器打开。文件路径就不正确了
兄弟可以再具体讲一下吗?
高人快来啊
高人快来啊
getResponse().reset();仔细看一下,你这句话是否起作用了