티스토리 뷰

Spring&Spring Boot/JSP

doGet, doPost

on1ystar 2019. 1. 18. 17:18
728x90
반응형
본 글의 목적은 제가 공부한 내용을 바탕으로 정리하면서 저와 같이 공부하시는 분 들을 위함입니다. 때문에 부족한 부분이 있을 수 있고, 잘못된 부분이 있을 수 있습니다. 만약 있을 경우, 생각을 고칠 수 있도록 저에게 알려주시면 정말 감사하겠습니다 !!



form 태그


HTML 태그 중에 <form></form> 태그라는 게 있습니다. 아시다시피 이 태그는 클라이언트의 데이터를 입력 받고, 이를 서버에 request하는 작업을 수행하기 위한 양식을 만들 때 주로 사용되는 태그입니다. 데이터의 전송이 목적이기 때문에 <input>태그와 같이 사용합니다.

이 form 태그에는 중요한 두 가지 속성이 있습니다.

action 속성 : 데이터를 전송할 URL(or 매핑 값)

method 속성 : 데이터를 전달하는 방식 (GET or POST)

여기서 주로 공부할 부분이 바로 데이터를 전달하는 방식인 GET과 POST 방식입니다. 


doGet


이 GET방식은 위에서 설명했던 것 처럼 클라이언트가 request한 어떤 정보를 가져오는 방식 중 하나입니다.

GET방식으로 정보를 전달했을 시에 이를 처리하는 메소드가 바로 doGet() 메소드입니다.

.JSP 파일에서 GET방식으로 입력받은 값을 servlet에서 request.getParameter 메소드를 통해 가져와 아래 콘솔창에 출력을 했습니다. 물론 doGet 메소드 안에 작성했습니다. doGet 메소드의 인자를 보면 기본적인 서비스에 필요한 Request와 Response 객체를 인자 값으로 받고 있습니다.

이 GET방식은 길이 제한이 있기 때문에 주로 선택이나 짧은 길이의 정보들을 다룰 때 주로 사용됩니다.

그리고 가장 큰 특징은 URL에 변수를 포함시켜 요청한다는 점입니다.

보시면 ?뒤에                    ?user_id(변수)=test(입력 값)&user_pw(변수)=1234(입력 값)        이 URL에 포함되어 있습니다. 때문에 입력 칸에 값을 넣지 않고 직접 URL에 값을 넣어 전송할 수도 있습니다.

하지만 이런 특징은 조금만 생각해 봐도 보안에 취약하다는 점을 눈치챌 수 있습니다. 때문에 이럴 경우 POST 방식을 이용할 수 있습니다.


doPost


우선 이 POST 방식은 길이 제한이 없어서 게시판이나 긴 글을 업로드하는 형식에 사용될 수 있습니다.

또한 GET방식과 달리 URL에 데이터가 노출되지 않습니다.


이렇게 POST 방식으로 데이터를 전달하면 URL에 Mapping 정보만 표시됩니다. 따라서 GET방식 보다는 보안에 더 좋은 장점을 가지고 있어 개인 정보를 다루는 데이터들을 전달할 때는 POST 방식을 선택하는 것이 바람직합니다.

servlet을 보면 POST 방식으로 전달했지만 doGet 메소드에 작성한 아까의 코드를 그대로 둬도 아래 콘솔창에 값이 잘 나오고 있는 것을 확인할 수 있습니다. 이 이유는 doPost메소드 밑에 doGet(request, response)를 작성해 doPost가 받은 인자 값을 그대로 doGet에 다시 전달하고 있기 때문입니다. 이런 식으로 POST 방식의 데이터 전달도 doGet메소드 밑에서 다룰 수 있습니다.


728x90
반응형

'Spring&Spring Boot > JSP' 카테고리의 다른 글

JSP request, response  (0) 2019.01.20
JSP 스크립트  (0) 2019.01.19
Servlet Lifecycle  (0) 2019.01.18
HttpServlet  (2) 2019.01.17
Servlet Mapping  (0) 2019.01.11
댓글