<form> 태그는 사용자가 입력한 데이터를 받아 사용자와 상호 작용 할 수 있도록 하는 텍스트 박스 이외에 다양한 입력 양식을 제공해 준다.

 

⊙ 암호를 입력받기 위한 암호 입력 상자

암호 입력과 같이 입력한 문자 대신 특수 문자가 출력되도록 하려면 입력상자를 만들 때 type 속성 값password로 지정한다.

<input type="password" name="pwd">

HTML5에는 입력 양식에 대해 설명을 덧붙이기 위한 <label> 태그가 있는데 <label> 태그의 for 속성에 입력 양식의 id값을 매칭하면 두 태그는 서로 연결되어 라벨을 클릭하면 입력 양식을 클릭한 것과 동일한 효과를 얻는다.

<label for="userpwd"> 암 &nbsp;호 : </label>
<input type="password" name="pwd" id="userpwd"><br>

 

암호 입력 상자 예제 JSP 코드이다.

<%@ 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>
	<form method="get" action="LoginServlet">
		<label for="userid"> 아이디 : </label> 
		<input type="text" name="id" id="userid"><br>
		
		<label for="userpwd"> 암 &nbsp; 호 : </label>
		<input type="password" name="pwd" id="userpwd"><br>
		
		<input type="submit" value="로그인">
	</form>
</body>
</html>

 

암호 입력 상자 예제 Servlet 코드이다.

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		String id = request.getParameter("id");
		String pwd = request.getParameter("pwd");
		PrintWriter out = response.getWriter();
		out.print("<html><body>");
		out.println("당신이 입력한 정보입니다.<br>");
		out.println("아이디 : ");
		out.println(id);
		out.println("<br> 비밀번호 : ");
		out.println(pwd);
		out.println("<br><a href='javascript:history.go(-1)'>다시</a>");
		out.print("</body></html>");
		out.close();
	}
}

 

⊙ 여러 줄 입력할 수 있는 글상자

<textarea> 태그는 여러 줄에 걸펴 글자들을 입력할 수 있는 입력 양식이다.

  속성   설명
  rows   텍스트 영역의 높이를 지정한다. 행수를 지정
  cols   텍스트 영역의 너비를 지정한다. 한 줄에 입력할 수 있는 글자 수 지정
  name   텍스트 영역이 여러 개일 경우 name 속성에 특정 이름을 지정하면 어느 입력 양식에 입력된 데이터인지를 구분할 수 있다.

 

⊙ 배타적 선택을 하는 라디오 버튼

라디오 버튼은 여러 가지 항목 중에서 하나를 선택해야 할 경우 사용된다. 라디오 버튼은 배타적 선택을 하는데 배타적 선택이 가능하려면 목적이 동일한 라디오 버튼들을 그룹으로 구성하여야 한다. type 속성에 radio를 지정한다.

<input type="radio" name="chk_mail"> 

목적이 동일한 라디오 버튼을 동일한 그룹으로 구성하려면 name 속성이 같아야 한다.

 

글 상자와 라디오 버튼 예제 JSP 코드이다.

<%@ 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>
	<form method="get" action="RadioServlet">
		<label for="gender"> 성별 : </label> 
		<input type="radio" id="gender" name="gender" value="남자" checked> 남자 
		<input type="radio" id="gender" name="gender" value="여자"> 여자 <br><br> 
		
		<label for="chk_mail"> 메일 정보 수신 여부 : </label> 
		<input type="radio" id="chk_mail" name="chk_mail" value="yes" checked> 수신 
		<input type="radio" id="chk_mail" name="chk_mail" value="no"> 거 부 <br><br> 
		
		<label for="content"> 간단한 가입 인사를 적어주세요^o^ </label>
		<textarea id="content" name="content" rows="3" cols="35"></textarea> <br>
		
		<input type="submit" value="전송">
	</form>
</body>
</html>

 

글 상자와 라디오 버튼 예제 Servlet 코드이다.

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/RadioServlet")
public class RadioServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		String gender = request.getParameter("gender");
		String chk_mail = request.getParameter("chk_mail");
		String content = request.getParameter("content");
		PrintWriter out = response.getWriter();
		out.print("<html><body>");
		out.println("당신이 입력한 정보입니다.<hr>");
		out.println("성별 : <b>");
		out.println(gender);
		out.println("</b><br> 메일 정보 수신 여부 : <b>");
		out.println(chk_mail);
		out.println("</b><br> 가입 인사 : <b><pre>");
		out.println(content);
		out.println("</b></pre><a href='javascript:history.go(-1)'>다시</a>");
		out.print("</body></html>");
		out.close();
	}
}

 

⊙ 체크 박스와 request의 getParameterValues()

체크 박스는 사용자가 선택하기 편하도록 여러 개의 항목을 나열하여 이중에서 원하는 항목을 선택할 수 있도록 하는것.

<input type="checkbox">

동일한 이름의 체크 박스가 여러 개 있는 HTML 문서에서 여러 개의 항목을 선택한 후 서블릿 파일로 전송하면 쿼리 스트링에 동일한 이름으로 여러 개의 값들이 여러 차례 전송되는 것을 확인할 수 있다. 이럴 경우 배열 형태로 값이 전송되기 때문에 요청(request) 객체의 파라미터 관련 메소드 중에서 getParameterValues()를 사용한다.

 

getParameterValues() : 지정한 이름을 가진 파라미터의 모든 값을 배열 형태로 얻어오기 떄문에 동일한 이름으로 여러 번 값이 전송되어도 이를 처리할 수 있는 메소드

 

체크 박스 예제 JSP 코드이다.

<%@ 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>
	<h2>악세사리</h2>
	관심항목을 선택하세요.<hr>
	<form method="get" action="CheckboxServlet">
		<input type="checkbox" name="item" value="신발"> 신발 
		<input type="checkbox" name="item" value="가방"> 가방 
		<input type="checkbox" name="item" value="벨트"> 벨트<br> 
		<input type="checkbox" name="item" value="모자"> 모자 
		<input type="checkbox" name="item" value="시계"> 시계 
		<input type="checkbox" name="item" value="쥬얼리"> 쥬얼리<br> 
		<input type="submit" value="전송">
	</form>
</body>
</html>

 

체크 박스 예제 Servlet 코드이다.

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/CheckboxServlet")
public class CheckboxServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.print("<html><body>");
		String items[] = request.getParameterValues("item");
		
		if (items == null) 
		{
			out.print("선택한 항목이 없습니다.");
		} 
		else 
		{
			out.println("당신이 선택한 항목입니다.<hr>");
			for (String item : items) 
			{
				out.print(item + " ");
			}
		}
		out.println("<br><a href='javascript:history.go(-1)'>다시</a>");
		out.print("</body></html>");
		out.close();
	}
}

 

⊙ 목록 상자

여러 항목 중 한 개를 선택하기 위한 콤보 박스, 여러 개를 선택할 수 있도록 하는 리스트 박스는 모두 <select> 태그로 size 속성 값만 달리 주어서 만들고 항목은 <option> 태그를 <select> 태그 내부에 추가해서 만든다.

 

size에 값을 지정하지 않거나 1을 지정하면 콤보 상자가 만들어 진다.

<label for="job">직업</label>
	<select id="job" name="job" size="1">
		<option value="">선택하세요</option>
		<option value="학생">학생</option>
		<option value="프로그래머">프로그래머</option>
		<option value="기자">기자</option>
		<option value="공무원">공무원</option>
		<option value="교수">교수</option>
		<option value="군인">군인</option>
		<option value="경찰">경찰</option>
		<option value="교육">교육</option>
	</select>

 

<select> 태그에 size 속성에 2 이상의 값을 지정하면 리스트 박스가 만들어 진다. size 속성 값은 한 번에 보여줄 항목의 개수이고 multiple 속성을 추가하면 한꺼번에 여러 개의 항목을 선택할 수 있다.

<label for="interest" style="float: left;">관심분야</label> 
	<select id="interest" name="interest" size='5' multiple="multiple">
		<option value="JSP">JSP</option>
		<option value="PHP">PHP</option>
		<option value="ASP">ASP</option>
		<option value="PYTHON">PYTHON</option>
		<option value="JAVA">JAVA</option>
	</select>

+ Recent posts