3) 파일 다운로드 구현하기 실습 파일이 업로드되면 파일 정보는 데이터베이스 등에 저장을 하도록 합니다. 그리고 나중에 다운로드 할 때는 저장된 파일의 정보를 찾을 수 있는 id 등을 Controller에서 받게 한 뒤 해당 정보를 이용하여 데이터베이스에서 파일 정보를 읽어들이도록 해야 합니다. 읽어들인 파일 정보 response의 setHeader() 메서드를 이용해서 파일명, 파일 타입, 파일의 길이 이런 정보들을 지정을 하고 브라우저가 캐시를 읽지 못하도록 no-cache 로 설정한 뒤 헤더 정보로 전송을 하게 합니다. 그리고 이 response로부터 HttpServlet Response에 OutputStream을 이용해서 읽어들인 내용의 파일을 출력하게 하는 겁니다. 아래 예제에서는 경로를 직접 ..
2) 파일 업로드 구현하기 실습 실습은 이전에 했던 프로젝트인 guestbook에 이어서 진행합니다. maven pom.xml에 파일 업로드와 관련된 라이브러리를 추가해야 합니다. commons-fileupload, commons-io 추가. commons-fileupload commons-fileupload 1.2.1 commons-io commons-io 1.4 DispathcerServlet에게 멀티파트 요청이 올경우 파일 업로드 처리가 될 수 있도록 MultipartResolver객체를 등록합니다. 최대 10메가 크기의 파일이 저장되도록 설정하였습니다. DispatcherServlet에 이런 내용들을 알려주기 위해서는 config 안에 있는 WebMvcContextConfiguration에 Bea..
1) 파일업로드 컨셉설명 Multipart? Multipart는 보통 파일을 전송할 때 사용합니다. 웹 클라이언트가 요청을 보낼 때 HTTP프로토콜의 바디 부분에 데이터를 여러 부분으로 나눠서 보내며, 그림과 같이 Content-Type, 파일 이름, 파일 정보 등으로 나뉜 부분을 연결하여 전송합니다. 이렇게 여러 부분으로 나눠서 오는 것을 multipart 데이터라고 합니다. HttpServletRequest는 파일 업로드를 지원 안 함 HttpServletRequest는 웹 클라이언트가 전달하는 Multipart데이터를 쉽게 처리하는 메소드를 제공하지 않습니다. 서블릿에서 파일 업로드를 처리하려면 별도의 라이브러리를 사용해야 합니다. 대표적인 라이브러리가 아파치 재단의 commons-fileuploa..
3) slf4j를 이용한 로그남기기 이전에 작성했던 guestbook 프로젝트의 LogInterceptor.java에 log4j를 추가합니다. 실습 pom.xml 파일에서 다음 부분을 수정합니다. org.springframework spring-context ${spring.version} 위의 부분을 아래와 같이 수정합니다. org.slf4j slf4j-api 1.7.25 ch.qos.logback logback-classic 1.2.3 org.slf4j jcl-over-slf4j 1.7.25 org.springframework spring-context ${spring.version} commons-logging commons-logging resource폴더에 logback.xml 파일을 작성합니다..