| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

画像出力Servlet

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

画像出力Servlet

Java |

呼出元
  1. <img src="/rscsvr/img.irc?img=01.jpg">
Web.xml
  1. <servlet>
  2. <servlet-name>imageresoruce</servlet-name>
  3. <servlet-class>rc.ImageResourceServlet</servlet-class>
  4. <load-on-startup>1</load-on-startup>
  5. </servlet>
  6.  
  7. <!-- Standard Action Servlet Mapping -->
  8. <servlet-mapping>
  9. <servlet-name>imageresoruce</servlet-name>
  10. <url-pattern>*.irc</url-pattern>
  11. </servlet-mapping>
Servlet
  1. package rc;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. import java.io.OutputStream;
  6.  
  7. import javax.servlet.ServletException;
  8. import javax.servlet.http.HttpServlet;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11.  
  12. @SuppressWarnings("serial")
  13. public class ImageResourceServlet extends HttpServlet {
  14. private String basedir = "c:\\work\\img\\";
  15. @Override
  16. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  17. byte[] buf = new byte[1024];
  18.  
  19. String img = request.getParameter("img");
  20. File f = new File(basedir + img);
  21.  
  22. // 動的ファイルのファイル名を設定
  23. response.setHeader("Cache-Control", "public"); // IE対策
  24. response.setContentType("image/jpeg");
  25. response.setHeader("Content-Disposition", "inline; filename=\"" + f.getName() + "\"");
  26.  
  27. FileInputStream r = new FileInputStream(f);
  28.  
  29. OutputStream o = response.getOutputStream();
  30. while (r.read(buf) > 0) {
  31. o.write(buf);
  32. }
  33. o.close();
  34. r.close();
  35. }
  36. }