** Spring에서의 파라미터 처리
1. HttpServletRequest 객체의 getParameter 메소드를 호출
2. Controller의 요청 처리 메소드에 @RequestParam("파라미터 이름") 자료형 변수명을 매개변수로 만들어서 처리
3. Command 클래스를 생성하고 Command 객체를 요청 처리 메소드의 매개변수로 이용해서 처리하는 것이 가능
** File Upload
** Spring에서의 파라미터 처리
1. HttpServletRequest 객체의 getParameter 메소드를 호출
2. Controller의 요청 처리 메소드에 @RequestParam("파라미터 이름") 자료형 변수명을 매개변수로 만들어서 처리
3. Command 클래스를 생성하고 Command 객체를 요청 처리 메소드의 매개변수로 이용해서 처리하는 것이 가능
** File Upload
- File이 있는 Form은 method가 반드시 post 방식이어야 하고 enctype을 multipart/form-data로 설정해 주어야 한다.
- pom.xml 파일에 의존성을 설정
commons-fileupload의 의존성을 설정
- Spring에서는 설정 파일에 MultipartResolver 클래스의 bean을 설정 파일에 등록해주어야 한다.
maxUploadSize 프로퍼티 : 업로드되는 파일의 최대 크기를 설정, 기본값은 -1(무제한)
maxInMemorySize 프로퍼티 : 임시 파일을 생성하기 전에 메모리에 보관할 수 있는 최대 크기
defaultEncoding 프로퍼티 : 인코딩 설정으로 기본값은 ISO-8859-1인데 인코딩 필터 설정이 되어 있으면 인코딩 필터 설정을 따르게 된다.
- Spring에서는 파일을 업로드할 때 HttpServletRequest 대신에 MultipartHttpServletRequest를 이용해야 하는데 이 클래스의 getFile("파라미터 이름") 메소드를 호출하면 파일을 MultiPartFile이라는 자료형으로 리턴한다.
@RequestParam이나 Command 객체를 이용할 때는 변수의 자료형을 MultiupartFile로 설정해야 한다.
- MultipartFile 클래스
String getName() : 파라미터 이름을 리턴한다.
String getOriginalFileName() : 파일의 이름을 리턴
boolean isEmpty() : 파일이 없는지 확인한다.(이게 true면 파일이 없는 것임)
long getSize() : 파일의 크기
byte [] getBytes() : 파일의 내용을 바이트 배열로 리턴
void transfer(File dest) : dest에 파일의 내용을 저장
- 서버에 파일을 저장할 때 파일 이름을 중복되지 않도록 만들어 주어야 한다.
한명의 유저가 하나의 파일만 업로드 한다면 파일이름을 기본키로 설정하면 된다.
여러 파일을 업로드하는 경우라면 UUID를 이용해서 유일 무이한 이름을 만들어 줘야 한다.
'안드로이드&IOS 앱 개발자 양성' 카테고리의 다른 글
안드로이드&IOS 앱 개발자 양성(69일차) (0) | 2020.07.14 |
---|---|
안드로이드&IOS 앱 개발자 양성(68일차) (0) | 2020.07.13 |
SpringMVC_OracleMybatis - 회원관리 (0) | 2020.07.10 |
안드로이드&IOS 앱 개발자 양성(66일차) (0) | 2020.07.09 |
SpringMVC 실습(64 ~ 67일차) (0) | 2020.07.08 |