File Upload를 하기 위해선 몇 개의 추가 기능을 넣어줘야 한다. 그 기능은 아래와 같다.
- pom.xml : commons-fileupload Library 추가

- servlet-context.xml : property 추가

- write.jsp : form 설정

- BoardDto.java : 멤버변수 추가

- FileInfoDto.java : 멤버변수 추가

- BoardServiceImpl.java : 전체적인 수정



mfile.transferTo가 일어난 시점부터 사용자의 컴퓨터에 파일이 저장된다.
그리고 DB에는 파일의 이름만 저장된다.



File Download를 하기 위해선 몇 개의 추가 기능을 넣어줘야 한다. 그 기능은 아래와 같다.
- list.jsp

- servlet-context.xml

- BoardController.java

- FileDownLoadView.java

실제 비즈니스 로직과는 분리되어 처리해야 하는 기능들을 넣을 때 Interceptor를 이용한다.
비슷한 기능으론 Filter와 AOP가 있다. 차이점은 아래와 같다.
Filter : Servlet Context -> Dispatcher Servlet에 적용됨.
Intercept : Handler Adapter -> Controller에 적용됨.
AOP : Controller -> Model에 적용됨.
Interceptor를 사용하기 위해선 HandlerInterceptor를 상속받아야 한다.
HandlerInterceptor가 제공하는 메서드는 아래와 같다.

각 메서드의 차이점은 아래 그림을 참고하자.
