<html>
<head>
</head>
<body>
<form action = "http://localhost:8080/form.jsp" accept-charset="utf-8"
name = "person_info" method = "get">
</form>
</body>
<html>
위쪽이 GET 방식이고 아래쪽이 POST 방식이다.
URL 끝에 데이터를 붙여 보내는 GET 방식은 데이터가 외부에 노출되어 보안에 취약하다. 그래서 전송할 데이터가 개인정보 보안을 해야 하는 경우는 POST 방식을 사용해야 한다.
GET 방식은 지정된 리소스에서 데이터를 요청하는 경우인 읽을 때 사용하는 메소드이지만, POST 방식은 지정된 리소스에서 데이터를 처리할 경우인 쓰고, 수정, 삭제할 때 사용한다.
보안이 필요하지 않으면서 지정된 리소스에서 자원을 읽을 경우에는 GET 방식을 사용하고, 그렇지 않다면 POST 방식을 사용하면 된다.
<field>,<legend>
<fieldset> 태그는 폼 태그 안에 관련 있는 폼 엘리먼트들을 그룹화할 때 사용한다. 그리고
<fieldset> 태그 하위에 <legend> 태그를 사용하여 그룹화한 폼 엘리먼트들을 목적에 맞게 이름을 지정한다.
<input>
사용자가 다양하게 폼 태그에 입력할 수 있는 공간을 만들어 준다.
주민번호 입력 칸은 HTML5에서 추가된 pattern 속성을 사용하여 정규표현식에 맞는 정확한 값을 입력해야 한다. 정규표현식을 지키지 않고 submit 버튼을 누르면 정확한 입력방법 설명이 나타난다. checkbox는 여러 개를 선택할 수 있지만, radio는 그룹 목록 중 하나만 선택이 가능하다.
<select>,<optgroup>,<option>
select : 항목을 선택할 수 있는 태그. 속성에는 size와 multiple
optgroup : select 태그 안에서 목록들을 그룹화할 경우 사용하며 label 속성을 사용하여 그룹 이름을 지정함.
option : 목록을 나타내는 태그
select > optgroup > option
위 select 박스는 size 속성을 이용하여 한 번에 볼 수 있는 크기를 5개 목록으로 지정했다. 그리고 mutiple 속성을 지정하여 ctrl이나 shift 버튼으로 한 번에 여러 개를 선택할 수 있도록 설정했다.
밑 select 박스는 outgroup으로 목록들을 그룹화하였다.
<textarea>
textarea태그로 여러 줄을 입력받는 박스를 설정했다. rows는 20, cols는 10을 지정하였다. 입력된 텍스트가 10자 이상 입력되면 다음줄로 자동으로 내려가고 20줄 이상 넘어가면 자동 스크롤이 생긴다.
또한 placeholder을 사용하여 박스 안에 입력할 값에 대해 힌트를 주었다.
<datalist>
텍스트 상자에 입력 값 후보 목록을 지정할 경우 사용한다.
datalist 태그 id 값을 이용하여 input 태그 list속성값으로 지정하여 텍스트 박스 아래 그룹리스트로 출력되는 것을 볼 수 있다.
<input>
태그의 date날짜를 입력받기 위한 속성값이다. 날짜 선택을 위한 달력도 함께 표시된다. 이 값이 서버 프로그램에 전달되면 자바 date 객체에 바로 데이터가 전달되어 쉽게 서버 프로그램에서 전달 받을 수 있다는 장점이 있다.
여기서 step은 input요소에 입력할 수 있는 숫자들 사이의 간격을 명시한다. "6"으로 설정해놓으면 달력 날짜에서 6일 간격으로 떨어진 날짜들만 선택이 가능하다.
<input>
태그의 number와 rangenumber와 range는 둘 다 숫자를 입력할 때 사용한다. range 태그는 슬라이더 형태의 UI로 렌더링 된다. min, max 속성을 이용하여 최소 최대값을 지정할 수 있다.
숫자가 아닌 값을 입력하고 submit 버튼을 누르면 에러메시지가 나타난다. number 속성 step으로 숫자 선택 간격을 지정할 수 있다.
<input>
태그의 color색상을 입력받을 때 사용한다. color 타입은 일부 웹 브라우저에서 Color Picker 형태의 UI로 렌더링 된다.
W3C HTML 유효성 검사기를 사용한다.
ohmysite 웹표준 유효성 검사로 웹사이트 표준여부 검사하기
MDN 나의 첫 HTML 폼
Nextree HTML : 폼(form) 이해