2 minute read

JSP - 4

  • 파일 업로드
  • 유효성 검사



파일 업로드 - 1. 개요

  • 업로드,
    • 웹 브라우저에서 서버로 파일을 전송, 서버에 저장하는 것
      • 전송 -> JSP 페이지 폼 태그 사용
      • 저장 -> 오픈 라이브러리 이용
  • 업로드 규칙!!
    • form 태그 method = POST
    • form 태그 enctype = multipart/form-data
    • form 태그 action = 업로드 처리할 JSP 파일
    • input 태그 type = file

uploadRule

  • 업로드 처리(오픈 라이브러리 이용)
    • MultipartRequest 이용

      가장 간단한 방법 cos.jar

    • 아파치 API 이용

      편리, 강력한 API 제공 commons-fileupload.jar, commons-io.jar



파일 업로드 - 2. MultipartRequest 이용

  • MultipartRequest 클래스
    • 업로드 되는 파일 자체만 다루는 클래스!
    • 일반 데이터와 구분하여 파일 데이터에 접근
    • 저장 폴더에 동일한 파일명이 있으면, 저장 파일명을 자동 변경
    • 오픈 라이브러리(cos.jar) 다운 및 import 필요
  • MultipartRequest 생성자 매개변수
    • request: Request 내장 객체 설정
    • saveDirectory: 서버의 파일 저장 경로 설정
    • maxPostSize: 업로드 파일의 최대 크기 설정
    • encoding: 인코딩 유형 설정
    • policy: 파일명 변경 정책 설정(중복 파일 있을 때 이름 변경)

multipartRequest

  • MultipartRequest 메서드
    • getParamter, getFileNames 등
    • 요청 파라미터 참고!
      • 일반 데이터는 getParameter 메서드로 받음
      • 파일 데이터는 getFile 메서드로 받음



파일 업로드 - 3. Commons-FileUpload 이용

  • Commons-FileUpload,
    • 서버의 메모리상에서 파일 처리가 가능하도록 지원

      빠름!

    • 오픈 라이브러리 다운 및 import 필요
  • 업로드 처리
    1. DiskFileUpload 객체 생성
    2. multipart/form-data 유형의 요청 파라미터 전송 받음
    3. FileItem 클래스의 메서드 사용 -> 분석, 처리 후 업로드

diskFileUpload






유효성 검사 - 1. 개요

  • 유효성 검사,
    • 사용자가 폼 페이지에서 입력한 데이터 값이 서버로 전송되기 전에 특정 규칙에 맞게 입력되었는지 검증하는 것

      ex. 회원 가입 때 아이디 중복 검사, 로그인 때 ID/PW 검사 등

  • 목적
    • 보안 공격, 잘못된 데이터, 예상 가능한 오류 등을 방지!
    • 폼 페이지는 일관된 입력양식, 형태를 유지
  • 핸들러 함수
    • 페이지에서 이벤트(ex. onclick) 발생 시, 유효성 검사하는 메서드
    • 자바스크립트 이용하여 코드 작성

handler

  • 유효성 검사 처리 방법
유효성 검사 설명
기본 유효성 검사 폼 페이지에 입력된 데이터 값의 존재 유무를 검사
데이터 형식 유효성 검사 폼 페이지에 입력된 데이터 값이 특정 패턴에 적합한지 검사하며 정규 표현식을 사용



유효성 검사 - 2. 기본 유효성 검사

  • 데이터 유무 확인
    • 필수 입력 항목에 데이터 값 유무 검사
    • document.폼 이름.입력양식 이름.value==""

validation

  • 데이터 길이 확인
    • 입력 데이터의 제한 길이를 검사
    • document.폼 이름.입력양식 이름.value.length < 12
  • 숫자 여부 확인
    • isNaN() 활용, 숫자면 false 아니면 true 반환
    • isNaN(document.폼 이름.입력양식 이름.value)



유효성 검사 - 3. 데이터 형식 유효성 검사

  • 데이터 형식 유효성 검사,
    • 사용자가 입력한 데이터 값이 특정 형태에 부합하는지 검사
    • 정규 표현식(regular expression = ‘RegExp’) 사용
    • 기본 유효성 검사보다 복잡!
  • 정규 표현식?
    • 특정 규칙을 가진 문자열 집합을 표현하는 형식 언어

      패턴으로 표현한 수식 (ex. 주민번호, 이메일 등)

  • 정규 표현식 사용
      1. 객체 초기화 사용
        • var 변수 이름 = /정규 표현식/[Flag];
        • 입력된 표현식이 거의 바뀌지 않는 상수형태일 때 주로 사용
      1. RegExp 객체 이용
        • var 변수 이름 = new RegExp('정규 표현식', /['Flag']);
        • 정규 표현식이 자주 변경될 때 주로 사용
  • Flag 종류
    • i: Ignore Case: 문자열, 대소문자 구분 없이 검출
    • g: Global: 문자열 내 모든 패턴 검출
    • m: Multi Line: 문자열 내 줄바꿈 행 있는지 검출

      Flag 설정 안하면, 문자열 내 검색 대상 많아도 한 번만 검출!!

  • 정규 표현식 메서드
    • test(): 정규 표현식에 부합하는지 판단 -> true/false 반환
    • exec(): 정규 표현식에 부합하는 문자열 추출하여 반환
  • 교재 참고!!
    • p.272 : 기본 메타 문자, 문자 클래스
    • p.277 : 자주 사용하는 패턴






과제

  • 7, 8단원 연습문제 / ~6/24(금)까지

  • 이형록_220520_JSP과제

  • 내용

    • 1~3번
      • 교재 읽고 답 찾기
      • 메모장에 타이핑
    • 4~6번
      • 교재 읽고 실습
      • 기본 소스 임포트 해서 확인
    • 7번
      • Book Market Mall 만들기 - 정답 소스 없음 (구글에 검색!!)
      • 수업용 예제, ‘Web Market Mall’ 참고!






nice!!!

Updated: