환경설정
1) 컨테이너에 다운로드 viewer 등록
<bean id="download" class="springweb.a06_util.Z01_DownloadView/">

2) 다운로드 viewer.java
public class 클래스명 extends AbstractView{
@Override
protected void renderMergedOutputModel(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response)
throws Exception { 1. 파일 객체 생성
파일다운로드 컨트롤러에서 모델명으로 온 파일의 파일명을 가져온다
파일명 선언 -> 경로와 함께 파일 객체 생성
String fname = (String) model.get("downloadFile");
2. 파일 객체를 client에 전달하기 위한 repsponse객체 속성 선언
파일을 클라이언트에 전달하기 위한 contentType 설정
전달할 파일의 크기 설정
헤더정보에 파일명을 입력(한글일 경우 encoding 처리)
attachment;filename="파일명"
헤더정보를 통해서 binary데이터 전송
3. FileInputStream으로 파일 객체 탑재, response객체의 OutputStream으로 client에 스트림 보내기
4. response 객체의 stream 자원해제
}
}

3) controller
d.addAttribute("downloadFile",fname);
view단에서 요청값으로 받은 파일명을 모델데이터로 만들어서 viewer.java에서 확인할 수 있도록 한다.