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 + "요일 입니다.");
}
}
- URL을 이용하여 요청을 하면 톰캣은 전달 받은 정보를 HttpServletRequest객체를 생성하여 요청한 정보를 저장하고, main 메서드의 매개변수로 넘겨준다. 즉, HttpServletRequest 객체는 웹에서 보낸 파라미터를 저장한다.(?)
- getParameter 메서드를 사용하여 요청 정보를 얻을 수 있다. 웹에서 보낸 파라미터와 같은 이름으로 꺼내온다.
- 웹에서 파라미터를 넘기는 방법은 http://localhost:9000/ch2/getYoil?year=1995&month=11&day=6 이렇게!
- 서버에서 파라미터를 보냈을 때 결과 이미지
학원에서 무작정 따라 쳤던 HttpServletRequest객체를 왜쓰는지 이제야 이해가 간다.
서버에서 파라미터를 보내면, 톰캣은 HttpServletRequest객체를 생성해 파라미터를 저장하고, 저장된 값을 main메서드의 파라미터로 넘기는 것!
그냥 대충 이렇게 쓰면 동작하는구나.하고 막 쓰고 있었는데, 동작 원리를 알고 나니 더 재밌어진다!
마냥 어렵게만 느껴지는 스프링!! 천천히 극복하자!!
'Spring' 카테고리의 다른 글
Servlet과 JSP (0) | 2022.03.01 |
---|---|
스프링 컨트롤러 메서드의 반환타입(String, void, ModelAndView) (0) | 2022.02.14 |
[참고] 1-4. HttpServletRequest 객체의 메서드 (0) | 2022.02.06 |
1-3. 콘솔이 아닌 브라우저에 출력하기 (0) | 2022.01.30 |
1-1. 웹(원격or서버)과 스프링 프로젝트 연결하기 (0) | 2022.01.28 |
댓글