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 標籤將查找的隊名與數據庫中的一致時,就輸入相對路徑的圖片。
由於這是本人剛開始,寫的還好的地方,還望各位大佬多多指教!