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가 제공하는 메서드는 아래와 같다.
각 메서드의 차이점은 아래 그림을 참고하자.