HTTP GET 및 POST 요청을 처리하는 방법
2024. 11. 15. 23:17ㆍ정보처리,전산/JAVA
반응형
Java Servlet 코드 설명
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at:").append(request.getContextPath());
}
- doGet 메서드:
- 이 메서드는 HTTP GET 요청을 처리한다.
- HttpServletRequest 객체 (request)는 들어오는 요청에 대한 정보를 담고 있으며, URL, 헤더, 파라미터 등의 데이터를 포함한다.
- HttpServletResponse 객체 (response)는 클라이언트에 응답을 보내는 역할을 한다.
- 메서드는 "Served at:"라는 문자열을 응답에 추가하고, 그 뒤에 request.getContextPath()를 추가한다. getContextPath()는 웹 애플리케이션의 컨텍스트 경로를 반환하는 메서드이다. , /your-web-app와 같은 값이 반환된다.
- response.getWriter()는 응답 본문에 데이터를 쓰기 위해 사용되며, append를 사용해 컨텍스트 경로를 응답에 추가한다.
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response); // doGet 메서드를 호출
}
- doPost 메서드:
- 이 메서드는 HTTP POST 요청을 처리한다.
- 현재 doPost()는 doGet()을 호출하여, POST 요청도 GET 요청과 동일한 방식으로 처리한다. 즉, POST 요청이 오면 doGet(request, response)를 호출해 GET 요청처럼 처리한다.
- POST 요청은 일반적으로 데이터를 전송하는 용도로 사용되지만, 여기서는 GET 요청과 같은 방식으로 응답을 처리한다.
이 코드가 동작하는 방식:
- GET 요청이 들어오면 doGet() 메서드가 실행된다.
- doGet() 메서드는 "Served at:"와 그 뒤에 애플리케이션의 컨텍스트 경로를 응답 본문에 작성한다.
- POST 요청이 들어오면 doPost() 메서드가 실행된다.
- doPost() 메서드는 doGet() 메서드를 호출하여, POST 요청도 GET 요청과 같은 방식으로 처리한다.
요약:
- 이 서블릿은 GET 요청과 POST 요청을 동일하게 처리한다.
- GET 요청이 오면 "Served at: /your-web-app"와 같은 형식으로 응답이 돌아온다.
- POST 요청이 오면, GET 요청과 같은 방식으로 응답을 처리한다. (현재 POST 요청을 별도로 처리하지 않고 GET 요청과 동일한 방식으로 처리하고 있다.)
사용 예시:
서블릿을 배포하고 다음과 같은 요청을 보낼 수 있다:
- GET 요청: 응답으로 "Served at:/your-web-app"과 같은 문자열이 반환된다.
- POST 요청: 응답은 GET 요청과 동일하며, "Served at:/your-web-app"과 같은 값이 반환된다.
■ 서블릿의 생명주기 메서드인 생성자, init(), doGet()을 구현.
System.out.println("FirstServlet의 생성자 호출됨");
- 이 부분은 생성자에서 호출된다.
- 서블릿이 생성될 때 System.out.println()을 통해 "FirstServlet의 생성자 호출됨" 메시지를 출력한다.
- 서블릿 객체가 생성될 때 콘솔에 출력된다.
public void init(ServletConfig config) throws ServletException {
System.out.println("FirstServlet의 init() 호출");
}
- init() 메서드는 서블릿이 최초로 초기화될 때 호출된다.
- 서블릿이 웹 서버에 의해 최초로 호출되기 전에 한 번만 실행된다.
- 이 코드에서는 init() 메서드에서 "FirstServlet의 init() 호출"이라는 메시지를 출력한다.
- ServletConfig는 서블릿에 대한 설정 정보를 제공하며, 보통 서블릿을 초기화할 때 사용된다.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("FirstServlet의 doGet() 호출됨");
String one = request.getParameter("one");
String two = request.getParameter("two");
System.out.println("one=" + one + " two=" + two);
}
- doGet() 메서드는 HTTP GET 요청이 들어올 때마다 호출된다.
- 이 메서드에서는 "FirstServlet의 doGet() 호출됨" 메시지를 출력하여 doGet()이 호출되었음을 알린다.
- 그 후, request.getParameter("one")와 request.getParameter("two")를 사용하여 요청 파라미터 one과 two의 값을 가져온다.
- 그 값을 콘솔에 출력하는데, "one=값 two=값" 형태로 출력된다.
- 생성자: 서블릿 객체가 생성될 때 "FirstServlet의 생성자 호출됨" 메시지가 출력된다.
- init() 메서드: 서블릿이 최초로 초기화될 때 "FirstServlet의 init() 호출" 메시지가 출력된다.
- doGet() 메서드: HTTP GET 요청이 들어올 때마다 "FirstServlet의 doGet() 호출됨" 메시지가 출력되고, 요청 파라미터 one과 two의 값을 출력한다.
FirstServlet의 doGet() 호출됨
one=123 two=456
전체 코드:
public class FirstServlet extends HttpServlet {
// 생성자
public FirstServlet() {
System.out.println("FirstServlet의 생성자 호출됨");
}
// init() 메서드
public void init(ServletConfig config) throws ServletException {
System.out.println("FirstServlet의 init() 호출");
}
// doGet() 메서드
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("FirstServlet의 doGet() 호출됨");
String one = request.getParameter("one");
String two = request.getParameter("two");
System.out.println("one=" + one + " two=" + two);
}
}
서블릿의 실행 흐름:
- 서블릿이 처음 로드될 때 생성자가 호출되고, init() 메서드가 호출된다.
- 클라이언트가 GET 요청을 보내면 doGet() 메서드가 호출된다.
- doGet()에서는 요청 파라미터를 읽고, 그 값을 콘솔에 출력한다.
참고:
- 서블릿은 웹 서버에 배포되면 자동으로 호출되는 생명주기를 가지고 있다.
- doGet()은 HTTP GET 요청에 대한 응답을 처리하는 메서드이며, POST 요청은 doPost() 메서드로 처리된다.
반응형
'정보처리,전산 > JAVA' 카테고리의 다른 글
상속을 활용한 생성자 호출 (0) | 2024.11.28 |
---|---|
Java 문자와 숫자 비교 | 캐스팅 | 대문자 소문자 | 문자 빈도 수 (0) | 2024.11.21 |
final 키워드 (1) | 2024.09.17 |
환경 변수 설정한 JAVA 버전 확인이 안될 때 (0) | 2024.08.08 |
생성자 오버라이딩 업캐스팅 (0) | 2024.07.26 |