[JSP/Servlet] Form 예제

web.xml


<!-- FormServlet 등록 -->

  <servlet>

  <servlet-name>form servlet</servlet-name>

  <servlet-class>servlet.requestparam.FormServlet</servlet-class>

  </servlet>

  <servlet-mapping>

  <servlet-name>form servlet</servlet-name>

  <url-pattern>/form/formServlet</url-pattern>

  </servlet-mapping>





input_form.html


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<h1>각종 입력 폼</h1>

<!-- form태그 - 입력양식들을 묶어주는 태그 : 요청할 URL과 요청방식 설정  -->

<form action = "/myweb/form/formServlet" method="post">

이름 : <input type="text" name="name"><br><!-- 1줄 텍스트 입력폼(type=text) -->

패스워드 : <input type="password" name="password"><br>

주소 : <input type="text" name="address" size="50" maxlength="10"><br>

<!--  라디오 버튼 : 여러개중 하나만 선택 하는 선택버튼 : type="radio" 같은 이름끼리 그룹으로 묶인 -->

성별 : <label for="radio_f">남성 : </label><input type="radio" name="gender" value="남성" id = "radio_f"> 

<label>여성 : <input type="radio" name="gender" value="여성"></label>

<!-- 체크박스 버튼 

1. Yes/No 를 입력받기 위한 선택버튼.

2. 여러개중에 여러개 선택을 위한 선택버튼.-->

<label for="chk_mail">광고 메일수신여부</label> <input id="chk_mail" type="checkbox"  name="acceptMail" value="yes">

<p>

관심 언어를 선택하세요(다중선택 가능)<br>

<label for="chk_java">Java</label><input type="checkbox"  name="language"  value="Java"  id="chk_java">

<label for="chk_c">C언어</label><input type="checkbox" name="language" value="C언어" id="chk_c">

<label for="chk_python">파이썬</label> <input type="checkbox" name="language" value="python" id="chk_python">

<label for="chk_ruby">루비</label><input type="checkbox" name="language" value="Ruby" id="chk_ruby">

</p>

<!-- type="hidden" User(사용자)에게 감춘상태에서 전송하는 요청파라미터 설정. -->

<input type = "hidden" name="command" value="register">

핸드폰 번호

<select name="tel1">

<option>010</option>

<option>011</option>

<option>016</option>

<option>019</option>

</select>

<br>

상품 분류

<select name="category">

<option value="p1">컴퓨터</option>

<option value="p2">가전제품</option>

<option value="p3">소프트웨어</option>

</select>

<p>

설명<br>

<textarea rows="10" cols="100" name="intro"></textarea>

</p>

<p>

<input type="submit"  value="등록"><!-- 전송버튼 -->

<input type="reset" value="초기화"><!-- 초기화버튼: 입력폼의 값들을 초기화한다. -->

<input type="button" value="그냥버튼" onclick="alert('안녕하세요');"><!-- 버튼모양 : javascript와 연동 -->

</p>

<p>

<button type="submit">전송버튼</button>

<button type="reset">초기화버튼</button>

<button type="reset">버튼</button>

</p>

</form>

</body>

</html>




FormServlet.java

package servlet.requestparam;

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

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

public class FormServlet extends HttpServlet {
//POST 요청 처리 메소드.
public void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//요청파라미터들 조회
String name = request.getParameter("name");
String password = request.getParameter("password");
String address = request.getParameter("address");
String gender = request.getParameter("gender");
String acceptMail = request.getParameter("acceptMail");
String [] langs = request.getParameterValues("language");//다중선택
String command = request.getParameter("command");
String tel1 = request.getParameter("tel1");
String category = request.getParameter("category");
String intro = request.getParameter("intro");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter(); 
out.print("<!doctype html>");
out.println("<html><body>");
out.println("<h1>등록하신 정보입니다.</h1>");
if(name.trim().isEmpty()){  // trim : 좌우공백 없애기  isEmpty : 비었는지 확인
out.print("이름이 입력 되지 않았습니다.<br>");
}else{
out.printf("이름 : %s<br>", name);
}
//패스워드는 6글자 이상이어야 한다.
if(password.length()<6){
out.print("패스워드는 6글자 이상 입력해야한다.<br>");
}else{
out.printf("패스워드 : %s<br>", password);
}
out.printf("주소 : %s<br>", address);
out.printf("성별 : %s<br>", gender);
out.printf("메일 수신 여부 : %s<br>", acceptMail==null?"수신안함":"수신함");
out.print("관심 언어");
out.print("<ul>");
if(langs!=null){
for(String lang : langs){
out.printf("<li>%s</li>", lang);
}
}else{
out.print("<br> 관심언어가 없습니다.<br>");
}
out.print("</ul>");
out.printf("hidden값 - command : %s<br>", command);
out.printf("핸드폰 번호 앞자리 : %s<br>", tel1);
out.printf("선택 카테고리 : %s<br>", category);
out.printf("자기소개<br>%s", intro);
out.println("</body></html>");
}
}


● 입력 화면



● 결과 화면








댓글

Designed by JB FACTORY