【问题标题】:How to display image on Jsp page from database using Hibernate and spring MVC如何使用 Hibernate 和 Spring MVC 在数据库中的 Jsp 页面上显示图像
【发布时间】:2015-08-01 21:14:53
【问题描述】:

我可以通过这段代码找到所有数据

while(it.hasNext())
        {
        Object objnew=it.next();
        PartnerRegistrationIndividual PartRegIndv =(PartnerRegistrationIndividual) objnew;

        pid=PartRegIndv.getId();
        firstname=PartRegIndv.getFname();
        lastname=PartRegIndv.getLname();
        email=PartRegIndv.getEmail();
        mobile=PartRegIndv.getMobile();
        foe=PartRegIndv.getSpeciality();
        expSalPerDay =PartRegIndv.getExpectedSalaryPerDay();
        expSalPerMonth=PartRegIndv.getExpectedSalaryPerMonth();
        current_status=PartRegIndv.getApproval_status();

我正在使用以下代码从数据库中获取数据...但是我的网页变为空白,并且我在控制台中遇到了一些异常..

        Blob imgdata=PartRegIndv.getImage();
        imgdata.getBinaryStream();
        OutputStream output = response.getOutputStream();
        response.setContentType("image/jpeg");
        response.getOutputStream().flush();
        response.getOutputStream().close();

我的控制台出现异常...

SEVERE: Servlet.service() for servlet emen threw exception

java.lang.IllegalStateException: getOutputStream() 已为此响应调用 在 org.apache.catalina.connector.Response.getWriter(Response.java:604) 在 org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198) 在 org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125) 在 org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118) 在 org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:326) 在 org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:342) 在 org.apache.jsp.allpartners_jsp._jspService(allpartners_jsp.java:318) 在 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 在 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393) 在 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) 在 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654) 在 org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445) 在 org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379) 在 org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)

【问题讨论】:

  • 请提供 我的控制台出现的异常...
  • java.lang.IllegalStateException: getOutputStream() 已为此响应调用
  • @TAsk 请帮帮我

标签: java hibernate jsp spring-mvc


【解决方案1】:

在响应已经开始写回调用者之后,不应调用response.setContentType()

在调用 getOutputStream 之前尝试调用 setContentType

如果这没有帮助,您能否在您的代码中检查responseresponse.getOuputStream 可能被调用的位置?这样你就可以知道哪段代码开始写回浏览器了。

更新

一旦您开始写入响应。现在允许您呈现 JSP。 如果这是一个 servlet 代码,您可以直接“返回”而无需转发到 JSP。

【讨论】:

  • 无法以这种方式返回图像。在 JSP 页面中,创建一个 HTML IMG 元素,并使该元素的“src”属性调用将从服务器获取图像的 URL。因此,您将需要一个特殊的控制器方法来检索图像。
  • .......................我有这个如何放置从获取的图像的 src数据库
  • JSP 可以有这样的图像标签: " height="200" width="200 ">
  • 您必须像我在示例中那样实现一个接受 URL 的方法。在该方法中,您可以执行将图像数据写入response.getOutputStream() 的相同代码
【解决方案2】:
OutputStream output = response.getOutputStream();  

response.setContentType("image/jpeg");

如您所见,您首先获取响应并稍后设置它的类型,这可能会导致问题。

尝试纠正这个问题,如果情况仍然很糟糕,也可以发布堆栈跟踪。

【讨论】:

  • 对了,打开问题后好像没有刷新页面。
猜你喜欢
  • 1970-01-01
  • 2011-10-21
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 2015-02-28
相关资源
最近更新 更多