현재는 struts2나 spring4 등을 사용하기 때문에 잘 쓰지 않지만 간혹 jsp 혹은 servlet만으로 구성된 사이트를 개발 하거나 유지보수 해야 하는 경우 jsp파일 업로드 구현시 가장 많이 사용하는 cos.jar에 대해서 알아 보자
-www.servlets.com 에 접속하여 왼쪽 메뉴중 com.oreilly.servlet 메뉴를 클릭한다.
-가장 최근에 배포된 버전을 다운로드 받는다.(cos-26Dec2008.zip)
-압축을 풀어 cos.jar 를 컨테이너의 WEB-INF/lib 폴더에 넣어두자
-외부 라이브러리를 추가하였으므로 컨테이너를 재가동 한다.
MultipartRequest 클래스 사용
cos.jar 를 사용하는 경우 MultipartRequest 를통해서 파일 업로드를 구현 하게 된다.
해당 메소드는 아래의 생성자를 가지고 있다.
1.MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String saveDirectory)
- 요청객체와 저장경로를 인자로 갖는 생성자이다.
2.MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String saveDirectory, int maxPostSize)
- 요청객체와 저장경로 , 그리고 최대 파일 사이즈를 인자로 갖는 생성자
3.MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String saveDirectory, int maxPostSize, FileRenamePolicy policy)
- 요청 객체,저장경로,최대 파일 사이즈,그리고 중복파일 인터페이스를 사용할수 있는 생성자이다.
참고로 , 중복파일 처리 인터페이스란 업로드시 파일의 이름이 중복되면, 내부적인 규칙에 의해 파일명을 임의로 부여해주는 편리한
기능이다.
4.MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String saveDirectory, int maxPostSize, java.lang.String encoding)
- 요청객체,저장경로,최대 파일 사이즈,파일의 인코딩 방식을 지정할 수 있는 생성자
만일 파일명이 한글이라면 이 생성자의 사용은 매우 유용하겠다.
5.MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String saveDirectory, int maxPostSize, java.lang.String encoding, FileRenamePolicy policy)
- 요청객체,저장경로,최대 파일 사이즈,인코딩방식,중복처리 인터페이스 사용 가능 생성자
6.MultipartRequest(javax.servlet.http.HttpServletRequest request, java.lang.String saveDirectory, java.lang.String encoding)
- 요청객체,저장경로,인코딩 방식 지정 가능 생성자
7.MultipartRequest(javax.servlet.ServletRequest request, java.lang.String saveDirectory)
- HTTP기반이 아니라 일반 프로토콜 기반에서 요청 객체,저장경로를 인자로 갖는 생성자
8.MultipartRequest(javax.servlet.ServletRequest request, java.lang.String saveDirectory, int maxPostSize)
- HTTP기반이 아니라 일반 프로토콜 기반에서 요청객체,저장경로,최대 파일 크기를 인자로 갖는 생성자
각각의 생성자를 이용해서 파일 업로드 관련 메소드를 구현 하면 된다.