JSP如何获取数据库的图片

在我们学习jsp的过程中,有时候有的业务处理会使用到数据库中的图片,我当时也遇到了这种情况,当时也是想走捷径就在csdn上百,发现并没有任何卵用,大家写的都千篇一律,于是就想自己搞懂这个问题。

  • 数据库中存放的无非就:图片的相对路径和图片的名称,当然这两种意思本质上也是相同的。下面的就是一般数据库表的格式就是这样的。我用的数据库客户端是SQLyog
    nbateam
    项目的结构图如下:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200109205450268.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mjg5MzA4NQ==,size_16,color_FFFFFF,t_70)
    NBA文件夹下放的是数据库中存放的图片,将源图片Ctrl + V搞到里面就OK了。
    通过路径的方式,取出你要查询的队名,初始化要查询的字段。搞到集合里占位输出就好了,下面上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<div class="lishi">
<div class="tab">
<table width="600" align="center" height="150" >
<%
ArrayList<NTm> list = (ArrayList<NTm>)session.getAttribute("ssss");
if(list!=null&&list.size() != 0){ %>
<tr align="center" height="5">
<td class="z1"></td>
</tr>
<tr height="6">
<td align="left"></td>
</tr>
<%
for(int j = 0;j < list.size();j++){ %>
<div class="img1" width="200" height="200">
<img src="img/NBA/<%=list.get(j).getImgsd()%>" height="200" width="200">
</div>
<tr align="center" height="60">
<td class="z1"><%=list.get(j).getNtem() %></td>

</tr>
<tr height="200">
<td align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<%=list.get(j).getNhostr() %></td>
</tr>
<%}
}

%>
</table>
</div>
</div>
</div>

上面的代码是前端显示的界面,使用的是表单提交的方式,将业务需求交给对应的Servlet层进行处理。
Servlet层:

1
2
3
4
5
6
7
8
9
public ArrayList<NTm> selectByTeam(String Ntem){
ArrayList<NTm> slist = null;
try{
slist = nd.selectByTeam(Ntem);
} catch(Exception e){
e.printStackTrace();
}
return (ArrayList<NTm>)slist;
}

Dao层:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public ArrayList<NTm> selectByTeam(String Ntem){
ArrayList<NTm> list = new ArrayList<NTm>();
String sql = "select * from nbateam where Ntem like '%"+Ntem+"%'";
NTm ntm = new NTm();
try{
DBUtil.getConnection();
rs = DBUtil.executeQuery(sql);
while(rs.next()){
ntm.setNno(rs.getInt("Nno"));
ntm.setNtem(rs.getString("Ntem"));
ntm.setNhostr(rs.getString("Nhostr"));
ntm.setImgsd(rs.getString("Imgsd"));
list.add(ntm);
}
} catch(Exception e){
e.printStackTrace();
} finally{
DBUtil.close();
}
return list;
}

Bean层:
Bean层大家自己封装就OK了,这个不再进行说明。

这个问题的实质就是使用:img 标签将查找的队名与数据库中的一致时,就输入相对路径的图片。

如有问题,还望各位大佬多多指教!