본문 바로가기

Servlet&JSP

ServletOutputStream

파일을 읽어올 때에는 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