当然可以在jsp页面上写上image标签  <img src="ImageServlet?id=1">  这种方式,ImageServlet是一个自己写的servlet(或者用jsp也可以),后面的id对应数据库中的主键key,
然后在servlet中获取id,并将对应的blob字段查询出来,按照流的方式输出就可以了。

解决方案 »

  1.   

    可以啊
    <image></image>
      

  2.   

    那还是要
    这跟ifream也没什么区别啊?
      

  3.   

    那还是要写<img src="ImageServlet?id=1"> 
    这跟ifream也没什么区别啊?
      

  4.   


    怎么能说跟iframe没有区别呢,iframe那是多个页面,这是一个页面。你如果是说希望在一个request中完成,那我只能告诉你那是不可能的。如果有这种想法,那只能说明你对http协议都还没有理解。
      

  5.   


    怎么能说跟iframe没有区别呢,iframe那是多个页面,这是一个页面。你如果是说希望在一个request中完成,那我只能告诉你那是不可能的。如果有这种想法,那只能说明你对http协议都还没有理解。表达的有问题啊。我在action层传了10个图片对象到jsp我怎么可以显示出这些图片呢?
      

  6.   

    问题可以总结为我在jsp上获取了10个blob的图片对象。我怎么可以直接显示在页面上呢?
      

  7.   


    怎么能说跟iframe没有区别呢,iframe那是多个页面,这是一个页面。你如果是说希望在一个request中完成,那我只能告诉你那是不可能的。如果有这种想法,那只能说明你对http协议都还没有理解。表达的有问题啊。我在action层传了10个图片对象到jsp我怎么可以显示出这些图片呢?已经跟你说了,你传图片对象(也就是blob)到jsp中是不行的,图片与jsp是对应两个request,明白了吗?你的意思还是希望在一个request中实现。你应该这样实现,将图片的id从action传入jsp,然后在jsp中用10个img标签,里面的src对应同一个servlet,id属性不一样。
    然后再在servlet中获取图片对象。
    不知道我有没有说明白。
    你希望在一个request中既输出html,又输出jpg图片,这是不可实现的。
      

  8.   


    base64转换只能是将字节与字符进行互换,可以在有些情况下方便网络传输(以字符的方式传输字节),但是在这里并不适用。
      

  9.   


    怎么能说跟iframe没有区别呢,iframe那是多个页面,这是一个页面。你如果是说希望在一个request中完成,那我只能告诉你那是不可能的。如果有这种想法,那只能说明你对http协议都还没有理解。表达的有问题啊。我在action层传了10个图片对象到jsp我怎么可以显示出这些图片呢?已经跟你说了,你传图片对象(也就是blob)到jsp中是不行的,图片与jsp是对应两个request,明白了吗?你的意思还是希望在一个request中实现。你应该这样实现,将图片的id从action传入jsp,然后在jsp中用10个img标签,里面的src对应同一个servlet,id属性不一样。
    然后再在servlet中获取图片对象。
    不知道我有没有说明白。
    你希望在一个request中既输出html,又输出jpg图片,这是不可实现的。
    明白了我总觉得调用一个servlet很慢的感觉。要是能直接显示对象就好了。
      

  10.   

    具体怎么做呢? /**
     * 生成文件
     * @param base64String base64字符
     * @param filePath 文件路径
     * @throws IOException
     * @return void
     */
    public static void generateFile(String base64String, String filePath) throws IOException{
    if (base64String == null) {
    throw new NullPointerException();
    }
    // Base64解码
    byte[] b = Base64.decodeBase64(base64String);
    for (int i = 0; i < b.length; ++i) {
    if (b[i] < 0) {// 调整异常数据
    b[i] += 256;
    }
    }
    // 生成文件
    OutputStream out = new FileOutputStream(filePath);
    out.write(b);
    out.flush();
    out.close();
    } /**
     * 生成文件
     * @param base64String base64字符
     * @param filePath 文件路径
     * @throws IOException
     * @return void
     */
    public static void generateFile(String base64String, String filePath) throws IOException{
    if (base64String == null) {
    throw new NullPointerException();
    }
    // Base64解码
    byte[] b = Base64.decodeBase64(base64String);
    for (int i = 0; i < b.length; ++i) {
    if (b[i] < 0) {// 调整异常数据
    b[i] += 256;
    }
    }
    // 生成文件
    OutputStream out = new FileOutputStream(filePath);
    out.write(b);
    out.flush();
    out.close();
    }
    把图片生成大的字符串存到数据库,要显示的时候再由字符串转成图片。
      

  11.   

    具体怎么做呢? /**
     * 文件生成base64字符
     * @param in 文件输入流
     * @throws IOException
     * @return String
     */
    public static String generateBase64String(InputStream in) throws IOException{
    byte[] data = new byte[in.available()];
    in.read(data);
    in.close();
    // 对字节数组Base64编码
    return Base64.encodeBase64String(data);
    } /**
     * 生成文件
     * @param base64String base64字符
     * @param filePath 文件路径
     * @throws IOException
     * @return void
     */
    public static void generateFile(String base64String, String filePath) throws IOException{
    if (base64String == null) {
    throw new NullPointerException();
    }
    // Base64解码
    byte[] b = Base64.decodeBase64(base64String);
    for (int i = 0; i < b.length; ++i) {
    if (b[i] < 0) {// 调整异常数据
    b[i] += 256;
    }
    }
    // 生成文件
    OutputStream out = new FileOutputStream(filePath);
    out.write(b);
    out.flush();
    out.close();
    }
    把图片生成大的字符串存到数据库,要显示的时候再由字符串转成图片。...
      

  12.   

    具体怎么做呢? /**
     * 文件生成base64字符
     * @param in 文件输入流
     * @throws IOException
     * @return String
     */
    public static String generateBase64String(InputStream in) throws IOException{
    byte[] data = new byte[in.available()];
    in.read(data);
    in.close();
    // 对字节数组Base64编码
    return Base64.encodeBase64String(data);
    } /**
     * 生成文件
     * @param base64String base64字符
     * @param filePath 文件路径
     * @throws IOException
     * @return void
     */
    public static void generateFile(String base64String, String filePath) throws IOException{
    if (base64String == null) {
    throw new NullPointerException();
    }
    // Base64解码
    byte[] b = Base64.decodeBase64(base64String);
    for (int i = 0; i < b.length; ++i) {
    if (b[i] < 0) {// 调整异常数据
    b[i] += 256;
    }
    }
    // 生成文件
    OutputStream out = new FileOutputStream(filePath);
    out.write(b);
    out.flush();
    out.close();
    }
    把图片生成大的字符串存到数据库,要显示的时候再由字符串转成图片。...
    那你页面上怎么写呢?