1 L'image a été téléchargée et l'adresse correcte de l'image a été obtenue dans la base de données
2 L'adresse correcte de l'image peut également être consultée sur la page
3 Redémarrez Tomcat et l'image sera affichée
Quel est le problème
Page frontale
<body bgcolor="white">
<%
response.setHeader("Pragma", "No-Cache");
response.setHeader("Cache-Control", "No-Cache");
response.setDateHeader("Expires", 0);
BookDao bookDao = new BookDao();
List<Books> list = new ArrayList<>();
List item = new ArrayList();
list = bookDao.listBookInfo();
%>
<%
for (Books books : list
) {
%>
<table>
<tr>
<td rowspan="4"><img alt="图片不存在" src="<%=books.getImgPath()%>" width="130px" height="180px"></td>
</tr>
<tr>
<td><%=books.getBookname() + "( 书号:" + books.getBookid() + ")"%>
</td>
</tr>
<tr>
<td><%=books.getWriter()%>
</td>
<td><%=books.getCbs()%>
</td>
</tr>
<tr>
<td><%=books.getItems()%>
</td>
</tr>
</table>
<hr>
<%
}
%>
Dao
See More public List<Books> listBookInfo() {
List<Books> list = new ArrayList();
try {
String sql = "SELECT * FROM books WHERE isLend=1";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
Books books = new Books();
books.setBookid(rs.getLong("bookId"));
books.setBookname(rs.getString("bookName"));
books.setCbs(rs.getString("cbs"));
books.setWriter(rs.getString("writer"));
books.setIslend(rs.getLong("isLend"));
books.setItems(rs.getString("items"));
books.setDate(rs.getTimestamp("date"));
books.setImgPath(rs.getString("imgpath"));
list.add(books);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
D'après ce que vous avez dit, il est possible que vos photos soient toujours stockées en mémoire.
Par exemple, votre flux de sortie est mis en cache, mais il n'y a ni vidage ni fermeture dans votre code, puis le redémarrage provoque un vidage forcé.