Java通过连接显示图片

本文介绍如何在Java应用中通过Servlet从数据库获取图片路径,并在JSP页面上正确显示图片。关键步骤包括数据库查询、Servlet转发以及处理路径分隔符的兼容问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们要拿到从数据库查询到的图片路径:

public User selectByid(int id) {
		User user = null;
		con = DBUtil.getConnection();
		try {String str = "where BooksID = ?";
			ps = con.prepareStatement(selectBooks.concat(str));
			ps.setInt(1, id);
			rs = ps.executeQuery();
			while (rs.next()) {
				user = new User();
				//数据库的imagers路径
				user.setImagers(rs.getString("imagers"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			DBUtil.close(con, ps, rs);
		}
		return user; }

再通过Servlet转发到显示的页面,并且把查询出来的路径传输过去

public void updateBooks(HttpServletRequest request,HttpServletResponse response)
	throws ServletException,IOException{
	String operation = request.getParameter("operation");
	int booksid = Integer.parseInt(request.getParameter("booksid"));
	//查询图片路径
	User users = userService.selectByid(booksid);
	//传值到页面
	request.setAttribute("users", users); 
	request.getRequestDispatcher("/sumweb/lookBooks.jsp").forward(request, response);}

Jsp页面

//回填图片
var imgs = $("#imgs").val();
//使用正则替换我们需要匹配的地址
var iou = imgs.replace(/^.*[\\]/,"/upload/");
//再把地址添加到src里显示出来
$("#imgbook").attr('src',iou);

这里需要注意的是:我们数据库保存的路径是:以目录以“\”分隔开的,而Jsp页面的路径识别“\”或者“/”那么我们需要在conf的目录server.xml添加路径匹配,在标签中间添加:
在这里插入图片描述
<Context path="/upload" docBase="D:\Java\serveTomcat7\apache-tomcat-7.0.52\webapps\booksA\.\upload\" reloadable="true"></Context>
Jsp页面路径显示:
在这里插入图片描述

页面浏览本地图片:

var imgReaderI = new FileReader();//FileReader()接口:用于读取文件
    //图片文件: 正则表达式过滤(此表达式是用来判断上传的文件是否是一张图片)
    regexImageFilter = /^(?:image\/bmp|image\/png|image\/jpeg|image\/jpg)$/i;
    //调用FileReader接口的onload方法,回调函数得到的evt是图片的URL链接
    imgReaderI.onload = function (evt) {
    //将数据结果赋值给image的src
    $("#imgbook").attr('src', evt.target.result); }
$("#test1").change(function () {
        var imgfFile = $("#test1").prop('files')[0];
        if (!regexImageFilter.test(imgfFile.type)) {
            layer.msg('选择的不是一个有效的图片文件', { icon: 0, offset: "100px" });}
        imgReaderI.readAsDataURL(imgfFile);});

效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值