关于输出流的问题

boney_xhs 2005-05-13 11:58:39
我在一个jsp页面中有如下JSP程序片段
<%
String vs_zp=rs.getString("ZP");//rs为某数据集,可正常取出数据
out.print("<img src=ShowPho.jsp?filename="+ vs_zp"+"></img>");
%>

ShowPho.jsp中代码如下:
<%@ page import="com.jspsmart.upload.*" %>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload"/>
<%
try{
mySmartUpload.initialize(pageContext);
String vs_filename=request.getParameter("filename");
mySmartUpload.downloadFile("d:\\hzxt\\photo\\"+vs_filename);
}catch(java.io.FileNotFoundException fe){}
catch(Exception e){
e.printStackTrace();
}
%>


会报告下面错误,但图片可正常显示,兄弟们帮我看看,谢谢了
[05-5-13 11:47:48:801 CST] 77067f1b WebGroup E SRVE0026E: [Servlet 错误]-[已获取输出流]:java.lang.IllegalStateException: 已获取输出流
at com.ibm.ws.webcontainer.srt.SRTServletResponse.getWriter(SRTServletResponse.java:511)
at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:202)
at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:193)
at org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:246)
at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:197)
at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:255)
at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:249)
at org.apache.jsp._ShowPhoto._jspService(_ShowPhoto.java:116)
at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:344)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.serviceJspFile(JspServlet.java:662)
at com.ibm.ws.webcontainer.jsp.servlet.JspServlet.service(JspServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
at com.ibm.ws.webcontainer.servlet.ServicingServletState.service(StrictLifecycleServlet.java:333)
at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java(Compiled Code))
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:114)
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:439)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

...全文
173 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
boney_xhs 2005-05-25
  • 打赏
  • 举报
回复
试过了,还是不行
还有我通过一个servlet来取照片,在默认9080情况下可以看到照片
但发布后,通过IHS查看,就是通过80端口就无法看到照片了
这个大家知道是怎么回事吗
chongkai 2005-05-13
  • 打赏
  • 举报
回复
为什么不这样写呢?

out.print("<img src=\"" + vs_zp +"\"></img>");
ChDw 2005-05-13
  • 打赏
  • 举报
回复
<%@ page import="com.jspsmart.upload.*" %>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload"/>
<%

改成
<%@ page import="com.jspsmart.upload.*" %><jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload"/><%


绝对不能有任何多余的换行
chongkai 2005-05-13
  • 打赏
  • 举报
回复
照片可以放在数据库里,或者把照片文件放在你的web应用能到访问到的目录下。

你这样做不太好,浏览器得到你的页面后,还要再请求一次,才能得到照片。效率太低。
boney_xhs 2005-05-13
  • 打赏
  • 举报
回复
因为照片名称我是从数据库取出来的,并且照片是放在硬盘某个位置
没办法直接通过上述的方法得到

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧