Back-End/JSP

3. JSP 페이지 처리 기법 - 01. form 태그와 폼 데이터 처리

parkes811 2024. 5. 30. 01:41

  • 폼 처리의 개요

- 폼(form)은 사용자가 웹 브라우저를 통해 입력된 모든 데이터를 한 번에 웹 서버로 전송하는 양식입니다.

 

 

  • 폼을 구성하는 태그의 종류
태그 설명 태그 설명
form 폼을 정의하는 태그로 최상위 태그이다. select 항목을 선택할 수 있는 태그이다.
input 사용자가 입력할 수 있는 태그이다. textarea 여러 줄을 입력할 수 있는 태그이다.

 

 

  • form 태그
<form 속성1="값1" [속성2="값2 ---]>
	// 다양한 입력 양식 태그 ( <input>, <select>, <textarea> )
</form>

 

  • form 태그의 속성
속성 설명
action 폼 데이터를 받아 처리하는 웹 페이지의 URL을 설정한다.
method 폼 데이터가 전송되는 HTTP 방식을 설정한다.
name 폼을 식별하기 위한 이름을 설정한다.
target 폼 처리 결과의 응답을 실행할 프레임을 설정한다.
enctype 폼을 전송하는 콘텐츠 MIME 유형을 설정한다.
accept-charset 폼 전송에 사용할 문자 인코딩 방식을 설정한다.

 

 

  • GET 방식과 POST 방식의 차이

- URL 끝에 데이터를 붙여 보내는 GET 방식은 데이터가 외부에 노출되어 보안에 취약합니다. 따라서 개인 정보 등을 보호해야 할 때는 POST 방식을 사용해야 합니다.

- 또한, GET 방식은 지정된 리소스에서 데이터를 요청할 때, 즉 읽을 때 사용합니다.

- 반면 POST 방식은 지정된 리소스에서 데이터를 처리할 때, 쓰고, 수정하고, 삭제할 때 사용합니다.

구분 GET 방식 POST 방식
전송 형태 이름과 값의 형태로 URL에 포함되어 전송 HTTP 헤더 속에 감춰서 전송
전송량 제한적 (4,096B) 제한 없음
속도 빠름 느림
보안 없음 있음

 

 

  • input 태그

- input 태그는 사용자가 텍스트 입력이나 선택 등을 다양하게 할 수 있도록 공간을 만드는 태그입니다.

<input 속성1="값1" [속성2="값2" ---]>

 

속성 속성 값 설명
type text 기본 값으로 한 줄의 텍스트를 입력할 때 사용한다.
radio 라디오 버튼으로 열거된 것 중 하나만 선택할 때 사용한다.
checkbox 체크 박스로 열거된 것 중 다중 선택을 할 때 사용한다.
password 암호를 입력할 때 사용한다.
hidden 보이지 않게 숨겨서 값을 전송할 때 사용한다.
file 파일 업로드를 위한 파일을 선택할 때 사용한다.
button 버튼 모양을 출력할 때 사용한다.
reset 폼에 입력된 값을 모두 초기화할 때 사용한다.
submit 폼에 입력된 값을 모두 서버에 전송할 때 사용한다.
name 텍스트 입력 양식을 식별하는 이름을 설정한다.
value 텍스트 입력 양식의 초깃값을 설정한다.

 

  • select 태그

- select 태그는 여러 개의 항목이 나타나는 목록 상자에서 항목을 선택하는 태그입니다.

<select 속성=1"값1" [속성2="값2" ---]>
	<option 속성1="값1" [속성1] 항목1</option>
	<option 속성2="값2" [속성2] 항목2</option>
	--- (생략) ---
</select>

 

- select 태그의 속성

속성 속성 값 설명
name 텍스트 목록 상자의 이름을 설정한다.
size 숫자 한 번에 표시할 항목의 개수를 설정한다.
multiple   다중 선택이 가능하도록 한다. ctrl 을 눌러 목록 상자의 항목을 다중 선택한다.

 

- option 태그의 속성

속성 속성 값 설명
value 텍스트  항목의 값을 설정한다.
selected   해당 항목을 초깃값으로 선택한다.
disabled   항목을 비활성화한다.

 

 

  • textarea 태그

- textarea 태그는 여러 줄의 텍스트를 입력할 수 있는 태그입니다.

<textarea cols="너비 값" rows="높이 값">
	--- (생략) ---
</textarea>

 

- textarea 태그의 속성

속성 속성 값 설명
name 텍스트 이름을 설정한다.
cols 숫자 입력할 텍스트 영역의 너비(열 크기) 를설정한다.
rows 숫자 입력할 텍스트 영역의 높이(행 크기)를 설정한다.
wrap off 줄 바꿈을 설정한다.
wrap="off" : 줄 바꿈을 하지 않고 문장을 입력할 때 수평 스크롤바가 생기고 옆으로 계속 문장이 입력된다.
soft wrap="soft" : enter를 누르지 않아도 텍스트 라인 끝에서 자동으로 행이 바뀐다.
hard wrap="hard" : soft 상태와 비슷하며 실제 내용을 서버에 전송할 때 캐리지 리턴 문자를 전달한다.

 

 

  • 폼 데이터 처리

- JSP 에서 폼 데이터를 처리함으로써 표현문이나 스크립틀릿 태그에 request 내장 객체를 이용하여 폼 페이지에서 전달된 값을 얻을 수 있습니다.

String 변수=request.getParameter("요청 파라미터 이름");

 

- request 내장 객체는 웹 브라우저가 서버로 보낸 요청에 대한 다양한 정보를 담고 있어 getParameter() 메소드를 이용하여 요청 파라미터의 값을 얻을 수 있습니다.

 

- 요청 파라미터의 전체 값 받기는 폼 데이터의 일괄 처리 메소드를 이용할 수 있습니다.

메소드 형식 설명
getParameterNames() java.util.Enumeration 모든 입력 양식의 요청 파라미터 이름을 순서에 상관 없이 Enumeration(열거형) 형태로 전달 받는다.
hasMoreElements() boolean Enumeration(열거형) 요소가 있으면 true를 반환하고, 그렇지 않으면 false를 반환한다.
nextElement() E (Enumeration 객체를 생성할 때의 타입) Enumeration(열거형) 요소를 반환한다.