
인프런 강의 <<실전 JSP(renew ver.) 수강 후 공부를 위해 정리한 글입니다.

사용자에게서 받은 응답 데이터를 request 할 때 우리는 2가지 메서드 사용이 가능.
doGetdoPost
method="post"로 작성되어 있음. ==> doPost가 응답을 가져감.<form action = "msignup" method="post">
의미: 사용자가 submit을 누르면 msignup파일의 dopost 메서드에게로 데이터를 전송하시오
action = "url"
method = "전송방법(get/post)"
method="get"
doGet 메서드를 사용할 경우 데이터가 웹 브라우저 URL에 노출되어 웹 서버로 전송. 보안에 취약함. 또한 URL의 텍스트 글자수 제한이 존재하기에 많은 응답을 받았을 경우 URL이 짤릴 수 있음.

method="post"
doPost 메서드를 사용할 경우 doGet 메서드의 단점을 보완할 수 있음. doPost는 데이터가 HTTP Request에 포함되어 맵핑된 후 웹 서버로 전송함.





http://localhost:8090/lec08Pjt001/mSignUp?m_name=dfdfd&m_pass=dfd&m_gender=M&m_residence=seoul
<form action="mSignUp" method="get">
name : <input type="text" name="m_name"> </br>
nickname : <input type="text", name="m_nick"> </br>
password : <input type="password" name="m_pass"></br>
phone : <input type="password" name = "m_phone"> </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>
: text 입력 받음
name : <input type="text" name="m_name"> </br>
: password 형식으로 입력 받음

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>
: value 값은 전해 줄 때의 값이고
: >seoul</option> 처럼 괄호 사이에 끼어이있는 이름들은 select box 내에서 보일 이름들

<form> 태그 내에 입력된 데이터를 서버로 전달
<input type="submit" value="sign up">
value = ...
에 적힌 값이 버튼 안에 적힘
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);
}
}
: 여기에서는 dopost 메서드를 사용할 경우 doget메서드로 옮기고 있음.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(" -- doPost() -- ");
doGet(request, response);
}