<<파일 업로드>>
1. 파일 업로드란?
- 웹 브라우저(크롬)에서 서버(톰캣포함)로 파일을 전송하여 서버에 저장하는 것
- 웹 브라우저에서 서버로 파일을 전송하기 위해 JSP 페이지에 폼 태그를 사용
- 전송된 파일을 서버에 저장하기 위해 오픈 라이브러리(common-fileupload, cos.jar)를 이용함
2. cos.jar
- cos.jar 의 핵심 클래스는 MultipartRequest 이다
- MultipartRequest 클래스를 통해 객체를 생성하고 해당 객체의 메서드들을 활용하여 웹 브라우저(크롬)가 전송한 multipart/form-data 유형의 요청 파라미터를 읽어오고 파일을 업로드함
3. Commons-FileUpload
- 먼저 Commons-FileUpload 패키지에 포함되어 있는 DiskFileUpload 클래스를 통해 객체를 생성
- 생성된 객체의 메서드들을 사용하여 웹 브라우저가 전송한 multipart/form-data 유형의 요청 파라미터를 가져옴
- FileItem 클래스의 메서드를 사용하여 요청 파
라미터가 일반 데이터인지 파일인지 분석 및 처리하여 파일을 업로드함
<< 유효성 검사>>
1. 유효성 검사란
- 폼 페이지에서 입력한 데이터 값이 서버로 전송되기 전에 특정 규칙에 맞게 입력되어 있는 지 검증하는 것
- 예) 나이 입력 시 숫자 체킹, 회원 가입 시 아이디 중복 체크, 로그인 인증 시 아이디와 비밀번호를 체킹
2. 핸들러함수란?
- 폼 페이지에서 이벤트 발생 시 유효성 검사를 위해 매핑하는 메서드로,
Javascript/JQuery를 이용하여 유효성 검사를 하는 코드의 집합
- 서버에 과부하를 주지 않음
3. 유효성 검사의 종류
- 기본 유효성 검사 : 값의 존재 유무
- 데이터 셩식 유효성 검사 : 패턴에 적합한지 여부(정규 표현식 사용)
4. 기타
- isNaN() : is Not a Number => 숫자 false, 숫자가 아니면 true
5. 정규 표현식(암기법 : 정규 표현식 썼어? 이긍..)
- 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어
- 문자열의 특정 형태를 찾아내기 위해 일정한 형식의 패턴으로 표현
- 예) 주민등록번호, 전화번호, 이메일
- var 변수명 = /정규표현식/[Flag];
- var 변수명 = new RegExp('정규 표현식',[Flag']);
- Flag란?
* i : Ignore Case(문자열의 대문자와 소문자를 구별하지 않고 검출)
* g : Global(문자열 내의 모든 패턴을 검출)
* m : Multi Line(문자열에 줄 바꿈 행이 있는지 검출)
- [Flag]는 생략 가능. 만약 생략했다면... 한 번만 검출
- 정규 표현식 메서드
* test() : 문자열이 정규 표현식에 부합한지 판단(true/false 반환)
* exec() : 문자열에서 정규 표현식에 부합된 문자열을 추출하여 반환
- 정규 표현식에서 사용하는 기호(메타 문자) - 특정한 의미를 가진 문자
* ^x : 문자열이 x로 시작
* x$ : 문자열이 x로 종료
* .x : (임의의 한 문자) 문자열이 x로 끝남
* x+ : x가 한 번 이상 반복
* x? : x가 없다
* x* : x가 0번 이상 반복
* x|y : (or)x또는 y를 찾음
* (x) : (안의) 내용을 그룹화
* (x)(y) : 그룹화. 자동 그룹번호 부여 -> 배열
* x{n} : x를 n번 반복한 문자를 찾음
* x{n.} : x를 n번 이상 반복한 문자를 찾음
* x{n,m} : x를 n번 이상 m번 이하 반복한 문자를 찾음
* [xy] : x 또는 y를 찾음
* [^xy] : x,y를 제외하고 문자 하나를 찾음
* [x-z] : x부터 z사이의 문자 중 하나를 찾음
'개발자 > JspSpring' 카테고리의 다른 글
| 20220117 시큐리티 (0) | 2022.01.17 |
|---|---|
| 20220114 유효성 검사 (0) | 2022.01.14 |
| 20220110 상품등록페이지 만들기 (0) | 2022.01.10 |
| 20220107 구구단 출력 (0) | 2022.01.07 |
| 20220106 액션태그 (0) | 2022.01.06 |