컴퓨터/웹 프로그래밍
[jsp] form 데이터 처리
수제녹차
2019. 12. 20. 08:43
728x90
반응형
request시 서버는 어떻게 처리해야 할까
서버가 request를 가공 및 처리하여 사용자에게 응답해주어야 한다
- form 태그
Browser에서 서버쪽으로 데이터를 보낼 때 네트워크를 통해 서버로 날라간다.
-> request 객체에 데이터가 담겨서 웹 컨테이너(웹 어플리케이션 서버)로 간다
-> 서버는 이를 doGet 혹은 doPost 메서드로 받을 수 있다
- doGet 메서드로 받을 때
보안에 약하다
http://도메인:포트번호/contextRoot/~/?key=value&key=value ~ : form에 입력한 데이터가 나열된다, 정보가 노출된다.
누군가 데이터를 가로챌 수 있다
또한 text가 나열될 수 있는 한계가 있기 때문에 데이터를 많이 전달하지도 못한다
- doPost 메서드로 받을 때
프로토콜//도메인 주소/맵핑 정보만 노출
보안에 강하다
header 파일 안에 데이터가 암호화되어서 전달된다.
로그인, 회원가입, 설문조사 등
실습)
ex) html 일부
<form action="mSignUp" method="post">
name : <input type="text" name="m_name"></br>
gender : Man<input type="radio" name="m_gender"></br>
<input type="submit" value="sign"
</form>
ex) servlet 일부
@WebServlet("/mSignUp")
public class MemSignUp extends HttpServlet {
protected void doGet {
System.out.println("--doGet()--");
// request 객체 중에 getParameter (어떠한 값 하나만 뽑아낼 때 사용)
String m_name = request.getParameter("m_name");
String m_pass = request.getParameter("m_pass");
String m_gender = request.getParameter("m_gender");
// checkbox로 여러 개의 데이터를 선택할 수 있을 때 배열로 정보를 얻어낸다
String[] m_hobbys = request.getParameterValues("m_hobby");
String m_residence = request.getParameter("m_residence");
System.out.println("m_hobbys : " + Arrays.toString(m_hobbys));
// m_name, m_pass 등 속성값을 받을 수 있다. (입력한 값 말고)
Enumeration<String> names = request.getParameterNames();
while (names.hasMoreElements()){
String name = (String) names.nextElement();
System.out.println("name : " + name);
}
}
// request 객체 안에 데이터가 담겨 있다.(HTTP HEADER 파일에 암호화되어서)
protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("--doPost()--")
// 한쪽으로 코드를 몰아서 사용자가 doGet으로 들어오든 doPost로 들어오든 한쪽에서 코드 관리 가능
doGet(request, response);
}
}
출처 : 실전 jsp, inflearn
반응형