jsp获取数据库中存放相对路径的图片
在我们学习jsp的过程中,有时候有的业务处理会使用到数据库中的图片,我当时也遇到了这种情况,当时也是想走捷径就在csdn上百,发现并没有任何卵用,大家写的都千篇一律,于是就想自己搞懂这个问题。
- 数据库中存放的无非就:图片的相对路径和图片的名称,当然这两种意思本质上也是相同的。下面的就是一般数据库表的格式就是这样的。我用的数据库客户端是SQLyog。
项目的结构图如下:
NBA文件夹下放的是数据库中存放的图片,将源图片Ctrl + V搞到里面就OK了。
通过路径的方式,取出你要查询的队名,初始化要查询的字段。搞到集合里占位输出就好了,下面上代码:
<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"> <%=list.get(j).getNhostr() %></td>
</tr>
<%}
}
%>
</table>
</div>
</div>
</div>
上面的代码是前端显示的界面,使用的是表单提交的方式,将业务需求交给对应的Servlet层进行处理。
Servlet层:
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层:
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 标签将查找的队名与数据库中的一致时,就输入相对路径的图片。
由于这是本人刚开始,写的还好的地方,还望各位大佬多多指教!