09009

[JSP] get 방식, post 방식 본문

JSP
[JSP] get 방식, post 방식
09009

클라이언트가 서버에 요청하는 방식

get 방식 : 주소 창을 타고 넘어가므로 서버로 보내는 데이터를 사용자가 그대로 확인 가능 → 보안에 취약,

                   255자 이하의 적은 양의 데이터 전송

post 방식 : html header를 타고 넘어가므로 보안에 강하다. 255자 이상의 대용량 데이터 전송

 

서블릿 클래스에는 doGet(), doPost()가 있는데, 요청 방식에 따라 호출되는 메서드가 달라진다.

get 방식으로 요청  doGet() 호출

post 방식으로 요청 doPost() 호출


****

주로 <form> 태그를 통하여 서버에 무엇인가를 전달하거나 요청하게 된다.

위 소스코드는 <form> 태그로 서버 측에 존재하는 많은 서블릿 중에 하나를 정하여 요청하고 있다.

이를 위해 action이라는 속성값에 요청할 서블릿 이름을 작성해야 한다.

전송 버튼을 누르는 수간, action 속성값에 지정된 서블릿이 요청된다.

 

전송 버튼은 <input> 태그의 type 속성값을 "submit"으로 지정하여 생성해야 한다.

***


<form> 태그가 서블릿을 요청할 때, get과 post 두 가지 전송 방식 중 한 가지로 전송된다.

<form> 태그에 method 속성값을 추가하여 개발자가 원하는 전송 방식을 결정할 수 있다.

→ method 속성값으로 get을 작성하면 doGet() 메서드가, post를 작성하면 doPost() 메서드가 호출된다.

 

 

<form> 태그에 서블릿 이름을 넣어놓으면 서버에서는 어떻게 해당 서블릿을 찾을 수 있을까?

 

WAX(톰켓 엔진)가 운영체제와 같은 시스템이므로 확장자가 .class인 파일을 톰캣이 가지고 있다가

요청이 들어올 때 해당 서블릿 클래스들을 찾아서 실행하는 원리이다.

 

 

• <form> 태그를 이용한 get 방식 요청 예시

<form method="get" action="CallServlet">
	<input type="submit" value="전송">
</form>

• <form> 태그를 이용한 post 방식 요청 예시

<form method="post" action="CallServlet">
	<input type="submit" value="전송">
</form>

method 속성을 생략하여 전송방식을 따로 지정하지 않으면 기본값인 get 방식으로 요청한다.

 

 

get 방식과 post 방식은 어떤 경우에 사용될까?

get 방식 : 서버로 데이터가 전송될 때 주소창을 타고 넘어가므로 보안에 취약함.

로그인 폼을 만들 때 get 방식을 사용하면 회원이 입력한 암호가 그대로 노출되는 문제 발생

→ 일반적인 폼에서는 post 방식을 사용하는 것이 더 선호된다.

 

반면 폼이 아닌 <a> 태그를 통해서도 페이지를 이동하는 경우가 있는데 하이퍼링크를 통해서 서버가 요청되는 경우에는 무조건 get 방식으로 요청된다.

 

• <a> 태그를 이용한 get 방식 요청 예시

<a href="CallServlet"> get 방식의 요청 </a>

 

 

doGet(), doPost() 형태

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
		
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
		
}

 

'JSP' 카테고리의 다른 글

[JSP] request, getParameter()  (0) 2023.04.11
[JSP] 쿼리 스트링  (0) 2023.04.11
[JSP] 서블릿 생명주기 (Servlet LifeCycle)  (0) 2023.04.10
[JSP] 서블릿 클래스 생성하기  (0) 2023.04.10
[JSP] 서블릿 개념  (0) 2023.04.10