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