본문 바로가기
Spring

1-2. 서버에서 파라미터 받아 콘솔에 출력하기

by 지지 2022. 1. 28.

1-1에선 @Controller와 @RequestMapping 어노테이션을 사용해 서버와 스프링 프로젝트를 연결했다.

이번엔 연결된 주소에 매개변수를 보내 콘솔에 출력해보자.


먼저 전체 코드이다.

//년월일을 입력하면 요일을 알려주는 프로그램을 만들어보자.
@Controller
public class YoilTeller {
	
	@RequestMapping("/getYoil")
	public void main(HttpServletRequest request) {
		//HttpServletRequest : 서버에서 파라미터를 받겠다.
		
		//1. 입력
		String year = request.getParameter("year"); //파라미터는 웹(서버)에서 넘겨준다
		String month = request.getParameter("month"); //ex) http://localhost:9000/ch2/getYoil?year=1995&month=11&day=6
		String day = request.getParameter("day");     //물음표 뒤에 오는 것들이 파라미터 라고 생각하면 될 것 같다.
		
		//위 문자열을 숫자로 바꿔준다.
		int yyyy = Integer.parseInt(year);
		int mm = Integer.parseInt(month);
		int dd = Integer.parseInt(day);
		
		//2. 작업 - 날짜 셋팅
		Calendar cal = Calendar.getInstance();
		cal.set(yyyy, mm - 1, dd);
		
		int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); //숫자로 출력됨. 1=일, 2=월, 3=화 ...
		char yoil = "일월화수목금토".charAt(dayOfWeek); //숫자를 다시 문자로 바꿔준다.
		
		//3-1. 콘솔에 출력
		System.out.println(year + "년 " + month + "월 " + day + "일은 ");
		System.out.println(yoil + "요일 입니다.");

	}
}
  1. URL을 이용하여 요청을 하면 톰캣은 전달 받은 정보를 HttpServletRequest객체를 생성하여 요청한 정보를 저장하고, main 메서드의 매개변수로 넘겨준다. 즉, HttpServletRequest 객체는 웹에서 보낸 파라미터를 저장한다.(?)
  2. getParameter 메서드를 사용하여 요청 정보를 얻을 수 있다. 웹에서 보낸 파라미터와 같은 이름으로 꺼내온다.
  3. 웹에서 파라미터를 넘기는 방법은 http://localhost:9000/ch2/getYoil?year=1995&month=11&day=6 이렇게!

- 서버에서 파라미터를 보냈을 때 결과 이미지

서버에는 404에러가! (잘된거 맞다.)
콘솔에는 파라미터로 넘긴 값과 결과가 잘 뜨는 것을 확인 할 수 있다!


학원에서 무작정 따라 쳤던 HttpServletRequest객체를 왜쓰는지 이제야 이해가 간다.

서버에서 파라미터를 보내면, 톰캣은 HttpServletRequest객체를 생성해 파라미터를 저장하고, 저장된 값을 main메서드의 파라미터로 넘기는 것!

그냥 대충 이렇게 쓰면 동작하는구나.하고 막 쓰고 있었는데, 동작 원리를 알고 나니 더 재밌어진다!

마냥 어렵게만 느껴지는 스프링!! 천천히 극복하자!!

댓글