0

我创建了一个 jsp 页面,该页面调用另一个 jsp 页面,该页面显示从我的 mysql db 中的 blob 字段获取的图像:

<img src="blob.jsp"> 

有用。但是,在这个论坛的某个地方,我读到这不是正确的方法。相反,我应该以这种方式使用 servlet:

 <img src="servlet_name">

我创建了一个 servlet,但它没有向我显示它向我显示的图像

ÿØÿàJFIFHHÿí$Photoshop 3.08BIMí ResolutionHH8BIM FX Global Lighting Anglex8BIMFX Global Altitude8BIMó Print Flags 8BIM Copyright Flag8BIM'Japanese Print Flags 8BIMõColor Halftone SettingsH/fflff/ff¡™š2Z5-8BIMøColor Transfer Settingspÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿè8BIM Layer State8BIM Layer Groups8BIMGuides@@8BIM URL overrides8BIMSlicesuƒD Untitled-1Dƒ8BIMICC Untagged Flag

这是我的简单 servlet

package Jeans;

import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.sql.Blob;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/BlobDisplay")
public class BlobDisplay extends HttpServlet {
    private static final long serialVersionUID = 1L;
    GestioneDB gestioneDB ;


    public BlobDisplay() {
        super();       
    }


    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException 
            {       
        Blob image = null;
        byte[ ] imgData = null ;
        String query = null;
        query = request.getParameter(query);        

        gestioneDB = new GestioneDB();

        ResultSet rs =  gestioneDB.rs("select immagine_principale from news where id ='217'");

            try{
            if (rs.next()) {
            image = rs.getBlob("immagine_principale");
            imgData = image.getBytes(1,(int)image.length());

            response.setContentType("image/jpg");
            OutputStream o = response.getOutputStream();
            o.write(imgData);
            o.flush();
            o.close();
            }
        }
        catch(Exception e){}    
    }


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  

         this.doGet(request,response);
    }

}
4

1 回答 1

0

这是目前的调试提示。

JSP 只是“由内而外”的 servlet,它们由容器转换为 servlet。既然您的 JSP 可以工作,而您的 servlet 不能,那么您为什么不检查(并发布)生成的 servlet。如果您使用的是 tomcat,它将位于工作目录中的一个名为blob__jsp.javadeep的文件中。然后比较您的 servlet 和生成的 servlet 的调用和设置。

(我的第一个猜测是内容类型,但您似乎正在设置它)

于 2013-10-18T17:51:08.607 回答