问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

读取保存在数据库里的图片JSP页面显示无法显示图片

发布网友 发布时间:2022-04-29 12:24

我来回答

2个回答

热心网友 时间:2022-04-10 08:03

我把你的代码稍微改造了下,我这边是可以显示图片的。代码如下:


数据库操作部分:

package com.database;

import java.io.InputStream;
import java.sql.*;

/**
 * @作者 王建明
 * @创建日期 13-10-7
 * @创建时间 下午12:32
 * @版本号 V 1.0
 */
public class DataBaseUtil {
public static InputStream getImageStreamFromDataBase() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn =
DriverManager.getConnection("jdbc:mysql://localhost/quickstart", "root", "123456");
Statement stmt = conn.createStatement();
String sql = "select book_image from tbl_book where id=1 ";

ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
return rs.getBinaryStream("book_image");
}

} catch (Exception e) {
System.out.println("出现异常: " + e.getMessage());
} finally {
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
}


servlet部分:

package com.servlet;

import com.database.DataBaseUtil;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * @作者 王建明
 * @创建日期 13-10-7
 * @创建时间 下午12:18
 * @版本号 V 1.0
 */
public class ShowImage extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
InputStream in = DataBaseUtil.getImageStreamFromDataBase();
OutputStream toClient = response.getOutputStream();
response.reset();
response.setContentType("image/jpg");//或gif
int len = 10*1024*1024;
byte[] P_Buf = new byte[len];
int i;
while((i = in.read(P_Buf)) != -1){
toClient.write(P_Buf, 0, i);

}
in.close();
toClient.flush();
toClient.close();
}
}


web.xml中的servlet配置:

    <servlet>
        <servlet-name>ShowImage</servlet-name>
        <servlet-class>com.servlet.ShowImage</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ShowImage</servlet-name>
        <url-pattern>/showImage</url-pattern>
    </servlet-mapping>


页面中加载图片方式:

<img src="showImage" />


希望对你有帮助O(∩_∩)O~

热心网友 时间:2022-04-10 09:21

数据保存文件的路径,上传下载文件的时候把文件拷贝到指定的位置,最好在数据库中设置两个名字,一个是文件的原始名字,一个是不会重复的名字,如:已上传的时间精确到毫秒命名,最好用java类库中的UUID类。你可以把文件保存到项目的根目录下,这样方便读写
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
AFK半年后回归WOW,但发现好多东西搞不清楚了,求指教,多问题高分_百度知 ... wow85级什么本可以打378的猎人饰品 落花流水(打一动物)谜底及原因 办理买房按揭贷款需要多长时间啊 一手房如何办按揭 一手房按揭贷款申请条件 怎么把微信好友转移到另一个微信号上? 高铁站没有身份证可以进站吗 京东Plus会员每月优惠券去哪领?Plus会员哪里买最便宜? 京东plus会员优惠券在哪里领?怎么用? 网页显示图片特别窄 浏览器网页显示不全,有图帮忙看看正常吗 ...我的360浏览器所有网页不能显示背景图片了。请知道的大虾们救我... 我用html编写网页时,设置背景图片时,好像图片太大了,不能全部显示,如果... 为何浏览器页面显示不全? 上1024看图片,图片一多,全部显示后,后面的图片会挂掉 我的电脑网页窗口变了,图片显示不全,字体变大,互相挤到一块,没法辨认,教教我该怎么办?万分感激! 我的ie浏览器显示的网页字体很大,很多图片不能显示,背景成了灰色的,请问哪位高手能帮帮我 为什么我做的网站发到服务器上后,在有些电脑上有些背景图片显示不出来,而在有些电脑上又能完全显示。 为什么网页打开,显示的是”显示器分辨率宽度小于1024,不显示广告”?怎么办? 网站打不开,图片不显示,内存不足 婚姻里一方出轨该如何判 结婚以后出轨法律怎么判决 法律怎么判婚姻一方出轨离婚财产怎么分 北斗星清洗节气门后烧油很大 铃木北斗星k14b,怠速忽高忽低,清洗过喷油嘴检查过高压线换了一个高压包换了节气门清洗过氧传感器? 婚内出轨法律怎么处理 北斗星清洗过节气门后怎么让车初始化的 如何安装python virtualenv 我的北斗星汽车清洗完油路和节气门后怠速变高怎么回事 电脑网络保存的图片怎么会已损坏或无法显示 电脑显示不出大图 微信九宫格图片,拼成一张,点进去每张图片还有别的照片,怎么做到的? 网页中的图片变得模糊 如图 为什么网页显示不完整 形容人精神状态好的成语 负五的倒数是多少 形容一下子来了精神的词语有哪些 负5的倒数是 形容人有精神的词 -5的倒数是 . 精神开头的四字成语。 -5的倒数是什么 -5 倒数是多少?? 形容精神的词语 5的倒数是多少? 有精神飞卜这个成语吗? 什么是负倒数,5的倒数是.3的倒数是...负倒数等于本身的数存在吗 什么是负倒数,拜托,详细点,5的倒数是.3的倒数是...负倒数等于本身的数存在吗 精神百倍近义词