8강 : form 데이터 처리
출처
해당 게시글은 모두 인프런 실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌 https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-jsp_renew/dashboard에 출처를 두고 있습니다. 간략히 정리한 글 입니다.
내용
해당 게시글은 모두 인프런 실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌 https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-jsp_renew/dashboard에 출처를 두고 있습니다. 간략히 정리한 글 입니다.
클라이언트가 전송한 HTML
에 존재하는 <form>
태그 내에 정보들을 바탕으로 서비스를 제공하기 위해 데이터를 처리하는 과정입니다.
HTML
<form action="mSignUp" method="get">
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>
<form>
태그의 속성부터 살펴보겠습니다.
action
: 어느 URL(매핑)에 정보를 넘겨줄지 지정합니다
method
: GET
방식과 Post
방식을 선택할 수 있습니다. 각각 URL에 정보를 포함하느냐 내부에 숨겨서 포함하느냐에 따라 다릅니다.
다음은 <input>
, <select>
태그 입니다.
type
: 여러 입력 방식을 지정합니다. HTML5를 참조
name
: 변수명, 키, 등등 데이터를 지정하는 식별자입니다.
value
: 라디오나 체크박스 등에서 선택시 가지는 값 입니다.
이외의 태그와 속성들은 HTML를 참조하시길 바랍니다.
서블릿
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
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);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println(" -- doPost() -- ");
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
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);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println(" -- doPost() -- ");
doGet(request, response);
}
HttpServletRequest request
객체를 적극 활용하여 HTML이 전송한 데이터를 추출 합니다.
request.getParameter("name")
: HTML에서 name
속성에 지정해뒀던 값을 이용하여 해당 데이터를 추출합니다.
request.getParameterValues("name")
: 체크박스나 여러개의 값을 가지는 데이터를 가지고 올때 사용합니다. getParameter
와 다른 점은 복수를 허용하므로 배열을 리턴합니다.
request.getParameterNames()
: 태그에 사용된 name
들을 반환합니다. 보통 어떤 데이터들을 전송했는지 확인할때 사용됩니다.
Enumeration<E> enu
: Iteratro
+ Sync
로 생각하면 편합니다. Vector
나 HashSet
등 동기화를 지원하는 컬랙션에 순회하는 용도입니다.
enu.hasMoreElements()
: 컬랙션에 순회할 데이터가 남아있는지 확인합니다.
enu.nextElement()
: 현재순서의 데이터를 반환하고 다음 순서로 넘어갑니다.
후기
request.getParameter()
가 데이터를 처리하는데 중요한 역할을 하는것 같습니다.
GitHub
request.getParameter()
가 데이터를 처리하는데 중요한 역할을 하는것 같습니다.
https://github.com/ds02168/Study_JSP/tree/master/8%EA%B0%95
Author And Source
이 문제에 관하여(8강 : form 데이터 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ds02168/8강-form-데이터-처리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)