私のpostgresqlデータベースに画像をアップロードしていて、アップロードは成功しています。今度はこのイメージをJSPで表示したいのですが、データベースに取り込むことができましたが、イメージを表示するためにJSPに渡す方法がわかりません。 サーブレットからJSPに画像を正しく渡す方法
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection connect;
String userName = null;
byte[] image = null;
String imageName = null;
try {
connect = DriverManager.getConnection(databaseUrl, databaseUsername, databasePassword);
PreparedStatement select = connect.prepareStatement("SELECT username,image,image_name FROM users WHERE username = ?;");
select.setString(1, "steve");
ResultSet selectSet = select.executeQuery();
while(selectSet.next()) {
userName = selectSet.getString(1);
image = selectSet.getBytes(2);
imageName = selectSet.getString(3);
}
request.setAttribute("username", userName);
response.setContentType(getServletContext().getMimeType(imageName));
response.setContentLength(image.length);
response.getOutputStream().write(image);
} catch (SQLException e) {
e.printStackTrace();
}
}
IはJSP
request.getRequestDispatcher("viewImage.jsp").include(request, response);
に画像をダウン渡すのrequestDispatcherを使用してみましたが、私はIllegalStateExceptionが(のgetOutputStream()がすでに呼び出されている)に遭遇しました。
これは私のJSPコード
<c:out value='${requestScope.username }' />
<img src="${pageContext.request.contextPath}">
- では、画像を渡すために、サーブレットからJSPを呼び出すが、他の方法はありますか?
- コンテンツタイプを画像のMIMEタイプに設定すると、コンテンツタイプのために 'username'が表示されないことになりますか?どうすれば修正できますか? JSPに画像を伝承することができた方法については、私は朝からこのポストを探していた、と私は迷ってしまいました
How to retrieve and display images from a database in a JSP page?
EDIT:アプリケーションの目的が表示されていますユーザーのプロフィール(画像とテキスト情報)
重複で説明したように、 '' URLはサーブレットを呼び出す必要があります。あなたはしません。不明確な理由のために、あなたは ''からサーブレットのURLとイメージのファイル名/識別番号を削除しました。**私はキックオフの例を引き継いでそのまま続けることを強くお勧めします。 – BalusC
私のは zbryan
複製の例に従い、コードスニペットの前後のテキストも読んでください。 – BalusC