Servlet
GET/POST 전송 방식
dev-in-daily-life
2024. 8. 11. 14:12
반응형
- GET 방식 : URL 주소에 데이터를 붙여서 전송하는 방식
- POST 방식 : 전송하는 데이터를 숨겨서 전송하므로 보안성이 좋음.
| GET방식 | POST 방식 |
| - 서블릿에 데이터를 전송할 때는 데이터가 URL 뒤에 name=value 형태로 전송된다. - 여러 개의 데이터를 전송할 때는 '&'로 구분해서 전송된다. - 보안에 취약. - 전송할 수 있는 데이터는 최대 255자 - 기본 전송 방식이고 사용이 쉽다. - 웹 브라우저에 직접 입력해서 전송할 수도 있다. - 서블릿에서는 doGet()으로 전송된 데이터를 처리한다. |
- 서블릿에 데이터를 전송할 때는 TCP/IP 프로토콜 데이터의 HEAD 영역에 숨겨진 채 전송된다. - 보안에 유리함. - 전송 데이터 용량이 무제한이다. - 전송 시 서블릿에서는 또다시 가져오는 작업을 해야 하므로 처리 속도가 GET 방식보다 느림. - 서블릿에서는 doPost()를 이용해 데이터를 처리. |
GET 방식과 POST 방식 요청 동시 처리
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class GetPost
*/
@WebServlet("/handling")
public class GetPost extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet 메서드 호출");
doHandle(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost 메서드 호출");
doHandle(request, response);
}
private void doHandle(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
request.setCharacterEncoding("utf-8");
String userId = request.getParameter("user_id");
String userPw = request.getParameter("user_pw");
System.out.println("doHandle 메서드 호출");
System.out.println("아이디 : " + userId);
System.out.println("비밀번호 : " + userPw);
}
}
- doGet()이나 doPost() 메서드로 처리한 후 다시 doHandle()을 호출해서 처리한다.
반응형