본문 바로가기

JAVA

form 데이터 처리

-form 태그-

<form action="mSignUp2" method="post">
name : <input type="text" name="m_name"> </br>
password : <input type="password" name="m_pass"></br>
gender : Man<input type="radio" name="m_gender" value="M" checked="checked">, Woman<input type="radio" name="m_gender" value="W"></br>
hobby : Sport<input type="checkbox" name="m_hobby" value="sport">,
Cooking<input type="checkbox" name="m_hobby" value="cooking">,
Reading<input type="checkbox" name="m_hobby" value="reading">,
Travel<input type="checkbox" name="m_hobby" value="travel"></br>
residence : <select name="m_residence">
<option value="seoul" selected="selected">Seoul</option>
<option value="gyeonggi">Gyeonggi</option>
<option value="chungcheong">Chungcheong</option>
<option value="jeonra">Jeonra</option>
<option value="jeju">Jeju</option>
<option value="gyeongsang">Gyeongsang</option>
<option value="gangwon">Gangwon</option>
</select></br>
<input type="submit" value="sign up">
</form>

html form-submit 을 사용하여 Servlet controller로 전달한다.

action = mSignUp2 로 submit 버튼 클릭시 요청이 날라간다. 요청 방식은 post로 전달된다.

-doGet-

System.out.println(" -- doGet() -- ");

String m_name = request.getParameter("m_name");
String m_pass = request.getParameter("m_pass");
String m_gender = request.getParameter("m_gender");
String[] m_hobbys = request.getParameterValues("m_hobby");
String m_residence = request.getParameter("m_residence");

System.out.println("m_name : " + m_name);
System.out.println("m_pass : " + m_pass);
System.out.println("m_gender : " + m_gender);
System.out.println("m_hobbys : " + Arrays.toString(m_hobbys));
System.out.println("m_residence : " + m_residence);

Enumeration<String> names = request.getParameterNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
System.out.println("name : " + name);

form 태그 안에 있는 각 name을 통한 파라미터를 구분한다. 

취미 같은 경우 다중 선택이 가능 하기 때문에 문자열 객체에 배열 상태로 전달 받으며 요청 메서드는 request.getParameterValues 객체를 사용한다.

각 전달 받은 파라미터들을 콘솔 디버그로 출력하며 취미 같은 경우는 배열로 전달받은 문자열 객체이기 때문에 자바 메서드중 array.toString 메서드를 사용하여 출력한다.

하단에 while문 같은 경우는 전달받은 파라미터 명이 어떻게 되는지 확인 이 가능하다.

-doPost-

System.out.println(" -- doPost() -- ");

doGet(request, response);

doGet 메서드에서 로직을 구성 한 후 추후 유지보수를 위해 doPost 메서드에서 작성된 doGet메서드를 request, responce를 파라미터로 전달받아 호출하여 로직 을 처리한다.

'JAVA' 카테고리의 다른 글

JSP 내장객체  (0) 2021.06.27
JSP 스크립트  (0) 2021.06.27
Servlet Life-Cycle  (0) 2021.06.26
Servlet request, responce  (0) 2021.06.26
Servlet 맵핑  (0) 2021.06.24