【发布时间】:2015-07-20 00:00:45
【问题描述】:
我有 servlet 从 doGet() 内的 oracle 数据库中检索图像,它工作正常,但使用 printwriter() 时代码不起作用。
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();
String id = request.getParameter("submit");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "APP_DB", "1234");
PreparedStatement ps = con.prepareStatement("select photo from photos where id = ?");
ps.setString(1, id);
ResultSet rs = ps.executeQuery();
rs.next();
Blob b = rs.getBlob("photo");
response.setContentType("image/jpeg");
response.setContentLength((int) b.length());
InputStream is = b.getBinaryStream();
OutputStream os = response.getOutputStream();
byte buf[] = new byte[(int) b.length()];
is.read(buf);
os.write(buf);
os.close();
out.print("<a href='DisplyExcServlet'>visit</a>");//does not work
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
【问题讨论】:
-
请详细说明“不起作用”部分。
标签: java jakarta-ee servlets web