티스토리 뷰

학교공부/JSP

JSP - 4

날따라해봐요요롷게 2021. 3. 9. 23:57

CHAPTER 6 : 폼 태그

  • 폼 처리
  • form 태그
  • input 태그
  • select 태그
  • textarea 태그
  • 폼 데이터 처리

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

전송한 데이터는 웹 서버가 처리하고 처리 결과에 따라 다른 웹 페이지를 보여준다.

 

  • form : 폼을 정의하는 태그로 최상위 태그
  • input : 사용자가 입력할 수 있는 태그
  • select : 항목을 선택할 수 있는 태그
  • textarea : 여러 줄을 입력할 수 있는 태그

<form 속성1="값1" ... >

  //다양한 입력 양식 태그<input>, <select>, <textarea>

</form>

 

# 폼 태그의 속성

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

## input 태그의 기능과 사용법

<input 속성1="값" ... >

 

- input 태그의 기본 속성

type 

  • text : 기본 값으로 한 줄의 텍스트 입력
  • radio : 라디오 버튼으로 열거된것 중 하나만 선택
  • chechbox : 다중 선택 사용할 때
  • password : 암호 입력
  • hidden : 보이지 않게 숨겨서 값을 전송
  • file : 파일 업로드를 위한 파일을 선택할 때
  • button : 버튼 모양을 출력
  • reset : 폼에 입력된 값을 모두 초기화
  • submit : 폼에 입력된 값을 모두 서버로 전송

name - text : 입력양식을 식별하는 이름

value - text : 입력 양식의 초깃값 설정

 

<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Form Processing</title>
</head>
<body>
	<h3>회원 가입</h3>
	<form action="#" name="member" method="post">
		<p>아이디 : <input type="text" name="id"><input type="button" value="아이디 중복 검사">
		<p>비밀번호 : <input type="password" name="passwd">
		<p>연락처 : <input type="text" maxlength="4" size="4" name="phone1"> - 
					<input type="text" maxlength="4" size="4" name="phone2"> - 
					<input type="text" maxlength="4" size="4" name="phone2">
		<p>성별 : <input type="radio" name="sex" value="남성" checked>남성
				<input type="radio" name="sex" value="여성">여성
		<p>취미 : 독서<input type="checkbox" name="hobby1" checked>
				운동<input type="checkbox" name="hobby2" >
				영화<input type="checkbox" name="hobby3" >
		<p> <input type="submit" value="가입하기">
			<input type="reset" valye="다시쓰기">
	</form>
</body>
</html>

위 코드는 form 태그의 input 태그를 이용한 코드이다.

text / password / radio / checkbox / submit / reset 속성을 이용하였다.

 

## select 태그

 : 여러 개의 항목이 나타나는 목록 상자에서 항목을 선택하는 태그 형식.

리스트 박스에 여러 항목을 추가 삽입하기 위해 반드시 option 태그를 포함

 

<select 속성="값1" ... >

    <option 속성1="값1" [속성1]> 항목1</option>

    <option 속성2="값2" [속성2]> 항목2</option>

</select>

 

#속성

- select

  • name : 목록 상자의 이름 설정
  • size : 한 번에 표시할 항목의 개수 설정
  • multiple : 다중 선택이 가능하도록 함

- option

  • value : 항목의 값을 설정
  • selected : 해당 항목을 초깃값으로 선택
  • disabled : 항목을 비활성화
<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Form Processing</title>
</head>
<body>
	<form action="#" method="get">
		<p> <select name="city" size="4">
			<optgroup label="서울시">
				<option value=seocho">서초구</option>
				<option value=gangnam">강남구</option>
				<option value=songpa">송파구</option>
			</optgroup>
			<optgroup label="경기도">
				<option value=seongnam">성남시</option>
				<option value=suwon">수원시</option>
				<option value=yongin">용인시</option>
			</optgroup>
		</select>
		<p><input type="submit" value="전송">
	</form>
</body>
</html>

select 태그를 사용하여 <optgroup> 속에 <option>을 넣어서 select 태그를 활용하였다.

<optgroup> 은 label에 값을 넣어 활용, 

 

##textarea 태그

 : 여러 줄의 텍스트를 입력할 수 있는 태그

textarea 태그의 너비와 높이를 지정하기 위해 cols와 rows 속성을 설정

 

<textarea cols="너비 값" rows="높이 값">

</textarea>

 

속성

  • name : 이름 설정
  • cols : 열 크기 설정
  • rows : 행 크기 설정
<p> <textarea name="comment" clos="30" rows="10" placeholder="가입 인사를 입력"></textarea>

형식으로 사용 placeholder 안에 텍스트를 입력하면 입력상자에 미리 글이 들어가 있다.

 

##폼 데이터 처리하기

 : 사용자가 웹 브라우저의 폼 페이지에 입력한 데이터를 서버로 전달하여 서버가 이를 처리하기 위해

스크립틀릿 태그에 request 내장 객체를 이용하여 전달된 값을 얻을 수 있다.

 

- 요청 파라미터 값 받기

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

 

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

 

<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Form Processing</title>
</head>
<body>
	<h3>회원 가입</h3>
	<form action="formdata_process.jsp" name="member" method="post">
		<p>아이디 : <input type="text" name="id"><input type="button" value="아이디 중복 검사">
		<p>비밀번호 : <input type="password" name="passwd">
		<p>연락처 : <select name="phone1">
					<option value="010">010</option>
					<option value=011"">011</option>
					<option value="012">012</option>
					<option value="013">013</option>
					<option value="014">014</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>취미 : 독서<input type="checkbox" name="hobby1" checked>
				운동<input type="checkbox" name="hobby2" >
				영화<input type="checkbox" name="hobby3" >
		<p> <textarea name="comment" clos="30" rows="10" placeholder="가입 인사를 입력"></textarea>
		<p> <input type="submit" value="가입하기">
			<input type="reset" value="다시쓰기">
	</form>
</body>

============================

<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Form Processing</title>
</head>
<body>
	<%
		request.setCharacterEncoding("utf-8");
	
		String id= request.getParameter("id");
		String passwd = request.getParameter("passwd");
		String phone1 = request.getParameter("phone1");
		String phone2 = request.getParameter("phone2");
		String phone3 = request.getParameter("phone3");
		String sex = request.getParameter("sex");
		String hobby1 = request.getParameter("hobby1");
		String hobby2 = request.getParameter("hobby2");
		String hobby3 = request.getParameter("hobby3");
		String comment = request.getParameter("comment");
	
	%>
	
	<p> 아이디 : <%=id %>
	<p>비밀번호 : <%=passwd %>
	<p>휴대폰 : <%=phone1 %>-<%=phone2 %>-<%=phone3 %>
	<p>성별 : <%=sex %>
	<p>취미 : <%=hobby1 %> <%=hobby2 %> <%=hobby3 %>
	<p>코멘트 : <%=comment %>
</body>

#요청 파라미터의 전체 값 받기

 : get.Parameter 메소드를 이용하면 서버로 보낸 요청 파라미터 값을 얻을 수 있다.

하지만 입력 데이터가 다수이거나 입력양식이 다양하면 그에 맞춰서 getParameter 메소드를 설정해야 한다.

이러한 단점을 보완하기 위해서 폼 데이터 일괄 처리 메소드가 있다.

  • getParameterNames() : 모든 요청 파라미터를 Enumeration(열거형)형태로 전달받는다.
  • hasMoreElements() : Enumeration 요소가 있으면 true를 반환하고, 그렇지 않으면 false를 반환
  • nextElement() : Enumeration 요소를 반환
<%@ page contentType = "text/html; charset=utf-8" %>
<html>
<head>
<title>Form Processing</title>
</head>
<body>
	<h3>회원 가입</h3>
	<form action="filedata1_process.jsp" name="member" method="post">
		<p>아이디 : <input type="text" name="id"><input type="button" value="아이디 중복 검사">
		<p>비밀번호 : <input type="password" name="passwd">
		<p>연락처 : <select name="phone1">
					<option value="010">010</option>
					<option value=011"">011</option>
					<option value="012">012</option>
					<option value="013">013</option>
					<option value="014">014</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>취미 : 독서<input type="checkbox" name="hobby1" checked>
				운동<input type="checkbox" name="hobby2" >
				영화<input type="checkbox" name="hobby3" >
		<p> <textarea name="comment" clos="30" rows="10" placeholder="가입 인사를 입력"></textarea>
		<p> <input type="submit" value="가입하기">
			<input type="reset" value="다시쓰기">
	</form>
</body>
</html>

========================================

<%@ page contentType = "text/html; charset=utf-8" %>
<%@ page import="java.io.*,java.util.*" %>
<html>
<head>
<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>>\n");
				String paramValue =request.getParameter(name);
				out.println("<td>" + paramValue + " </td></tr>\n");
			}
		%>
	</table>
</body>
</html>

'학교공부 > JSP' 카테고리의 다른 글

JSP - 10  (0) 2021.04.15
JSP - 9  (0) 2021.04.06
JSP - 7  (0) 2021.03.24
JSP - 3  (0) 2021.03.09
JSP - 2  (0) 2021.03.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함