반응형

#38강 GET과 POST에 특화된 서비스 함수

- 사용자로부터 요청이 오면 service 함수를 통해서 doGet() 실행되거나 doPost()가 실행된다.

- GET만 처리하는 로직이 필요할 경우엔 service 함수를 오버라이드 하지 않으면, 알아서 doGet()이 호출된다.

1. calculator.html 문서

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="calculator" method="post">
		<input type="submit" value="요청"> 
	</form>

</body>
</html>
2. Calculator.java 서블릿 문서

package com.newlecture.web;

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;

@WebServlet("/calculator")
public class Calculator extends HttpServlet {
	
	// GET, POST 한번에 처리해야 할 경우 사용.
	// 이때 super.service는 없애는게 바람직하다.
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		if (req.getMethod().equals("GET")) {
			System.out.println("GET 요청이 왔습니다.");
		} else if (req.getMethod().equals("POST")) {
			System.out.println("POST 요청이 왔습니다.");
		}
		
		// super는 부모꺼 호출.
		// 요청에 따른 두 함수(GET, POST)를 호출하게 하는 것.
		// 이때 해당하는 메서드를 처리하는 함수가 없으면 오류 발생한다.
		super.service(req, resp);
	}
		
	// GET요청만 따로 처리할 경우
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("doGET 메소드가 호출 되었습니다.");
	}

	// POST요청만 따로 처리할 경우
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("doPOST 메소드가 호출 되었습니다.");
	}

}
반응형

+ Recent posts