파일을 읽어올 때에는 FileInputStream으로 읽어온 뒤 브라우저에 출력할 때에는 ServletOutputStream을 사용한다.
ServletOutputStream의 용도는 게시판에 파일을 올릴 때 사용한다.
ServletOutputStream 은 추상클래스이기 때문에 인스턴스를 생성할 수 없다.
ServletResponse 클래스에 getOutputStream()이라는 함수를 통해 servletOutputStream 인스턴스를 받아서 사용해야한다.
/* ServletOutputStream 사용 예제 */ import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class ImageServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ BufferedInputStream bis = null; ServletOutputStream sos = null; resp.setContentType("image/jpeg"); try{ bis = new BufferedInputStream(new FileInputStream("D:\\image/Penguins.jpg")); sos = resp.getOutputStream(); byte[] buf = new byte[1024]; int readByte = 0; while( (readByte=bis.read(buf)) != -1){ sos.write(buf, 0, readByte); } } catch(IOException e){ e.printStackTrace(); } finally{ if(bis != null) bis.close(); if(sos != null) sos.close(); } } }
'Servlet&JSP' 카테고리의 다른 글
Cookie (0) | 2016.04.15 |
---|---|
Scope (0) | 2016.04.14 |