본문 바로가기
도서/프로그래밍

[05] 쉽게 배우는 JSP 웹 프로그래밍

by 신발사야지 2024. 1. 18.

06 폼 태그

01 폼 처리의 개요

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

GET 방식과 POST 방식의 차이

구분 GET 방식 POST 방식

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

input 태그

속성 속성 값 설명

type text 기본값으로 한 줄의 텍스트를 입력할 떄 사용한다.
type radio 라디오 버튼으로 열거된 것 중 하나만 선택할 때 사용한다.
type checkbox 체크 박스로 열거된 것 중 다중 선택을 할 때 사용한다.
type password 암호를 입력할 때 사용한다.
type hidden 보이지 않게 숨겨서 값을 전송할 때 사용한다.
type file 파일 업로드를 위한 파일을 선택할 때 사용한다.
type button 버튼 모양을 출력할 때 사용한다.
type reset 폼에 입력된 값을 모두 초기화할 때 사용한다.
type submit 폼에 입력된 값을 모두 서버에 전송할 때 사용한다.
name 텍스트 입력 양식을 식별하는 이름을 설정한다.
value 텍스트 입력 양식의 초깃값을 설정한다.
readonly   입력 양식을 읽기 전용으로 설정한다.
mexlength 숫자 입력 양식의 최대 입력 글자 수를 설정한다. type=”text”인 경우에만 사용한다.
size 숫자 입력 양식의 너비를 설정한다. type=”text”인 경우에만 사용한다.
disabled   해당 입력 양식을 비활성화로 설정한다.
checked   기본값을 선택할 때 설정한다. type=”checkbox” 또는 type=”radio”인 경우에만 사용한다.
required   입력 양식을 필수 태그로 설정한다. 필수 태그를 입력하지 않고 <submit> 버튼을 누르면 오류 메시지가 웹 브라우저에 출력된다.
autofocus   웹 페이지가 로딩되자마자 해당 입력 양식의 포커스를 설정한다
placeholder 텍스트 입력 양식의 힌트를 설정한다.
pattern regexp 정규 표현식을 사용하여 특정 범위 내의 유효한 값을 입력받을 때 사용한다.

04 select 태그

select 태그의 속성

속성 속성값 설명

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

option 태그의 속성

속성 속성값 설명

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

<optgroup> 태그 (항목을 그룹으로 만들 수 있다. label 속성으로 사용하여 그룹으로 만들 이름을 설정

05 textarea 태그

속성 속성값 설명

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

 

 

[form 코드]

 

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
	<h3>회원 가입</h3>
	<form action="form_process.jsp" name="member" method="post">
		<p> 아이디 : <input type="text" name="id"><input type="button" value="아이디 중복 검사">
		<p> 비밀번호 : <input type="password" name="passwd">
		<p> 이름 : <input type="text" name="name">
		<p> 연락처 : <select name="phone1">
			<option value="010">010</option>
			<option value="011">011</option>
			<option value="016">016</option>
			<option value="017">017</option>
			<option value="019">019</option>
		</select> -
		<input type="text" maxlength="4" size="4" name="phone2"> -
		<input type="text" maxlength="4" size="4" name="phone3">
		<p> 성별 : <input type="radio" name="sex" value="남성" checked>남성
				<input type="radio" name="sex" value="여성" >여성
		<p> 취미 : <label for="hobby1">독서</label><input id="hobby1" type="checkbox" name="hobby" value="독서" checked>
		<label for="hobby2">운동</label><input id="hobby2" type="checkbox" name="hobby" value="운동" checked>
		<label for="hobby3">영화</label><input id="hobby3" type="checkbox" name="hobby" value="영화" checked>
		<textarea name="comment" cols="30" rows="3" placeholder="가입 인사를 입력해주세요"></textarea>
		<p> <input type="submit" value="가입하기">
		    <input type="reset" value="다시쓰기">
	</form>
</body>
</html>

 

 

 

[form process 코드]

 

<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Form Processing</title>
</head>
<body>
	<table border="1">
		<tr>
			<th>요청 파라미터 이름</th>
			<th>요청 파라미터 값</th>
		</tr>
		<%
			request.setCharacterEncoding("UTF-8");
			
			Enumeration paramNames = request.getParameterNames();
			while(paramNames.hasMoreElements()){
				String name = (String)paramNames.nextElement();
				out.print("<tr><td>" + name + "</td>");
				String paramValue = request.getParameter(name);
				out.println("<td> " + paramValue + "</td></tr>\n");
			}
		%>
	</table>
</body>
</html>