Programming/Spring

[스프링의 정석] HTTP 요청과 응답

Supreme_YS 2021. 10. 27. 15:24

1. 로컬에서의 요청과 실행

 

아래의 코드는 간단하게 연,월,일을 입력하면 요일을 알려주는 프로그램이다.

package com.fastcampus.ch2;

import java.util.Calendar;

// 연, 월, 일을 입력하면 요일을 알려주는 프로그램 
public class YoilTeller {
	public static void main(String[] args) {
		// 1. 입력
		String year = args[0];
		String month = args[1];
		String day = args[2];
		
		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:월요일...
		char yoil =" 일월화수목금토".charAt(dayOfWeek);
		
		// 3. 출력
		System.out.println(year + "년 " + month + "월 " + day + "일은 ");
		System.out.println(yoil + "요일입니다.");
	}
}

* main 메서드에 String []의 스트링 배열 args에 3개의 값을 입력할 변수를 선언해준다. ( year, month, day )

* String 형식이기 때문에 Integer로 Parsing을 해주고 연, 월, 일의 값을 int로 담아준다.

* Calendar 내부 패키지를 이용하여 cal 이라는 참조변수에 Calendar 패키지의 인스턴스를 가져오는 (getInstance) 객체를 생성한다.

* getInstance의 set 메서드를 통해 연, 월, 일을 세팅해준다.

* DAY_OF_WEEK 은 요일 정보를 담고있으며, 1 : 일요일, 2 : 월요일..순으로 진행된다.

* 따라서 char 형식의 yoil 변수는 첫째칸(0번째 인덱스)를 비우고 값을 세팅해준다.

 

* 아래와 같이 터미널에 입력한다. 

java com.fastcampus.ch2.YoilTeller 2021 10 26

* 출력값.

2021년 10월 26일은 
화요일입니다.

java 명령어를 통해 자바 인터프리터가 실행이 되며, YoilTeller가 실행이 된다. 실행시 args라는 String 배열이 생성되며 입력 값으로 배열에 2021, 10, 26이 차례대로 입력이 된다. 

 

다음은 페이지를 리로드할때마다 바뀌는 주사위 프로그램이다.

package com.fastcampus.ch2;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TwoDice {
	@RequestMapping("/rollDice")
	public void main(HttpServletResponse response) throws IOException {
		
		int idx1 = (int)(Math.random()*6)+1;
		int idx2 = (int)(Math.random()*6)+1;
		
		
		response.setContentType("text/html");
		response.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		
		out.println("<html>");
		out.println("<head>");
		out.println("</head>");
		out.println("<body>");
		out.println("<img src='resources/img/dice"+idx1+".jpg'>");
		out.println("<img src='resources/img/dice"+idx2+".jpg'>");
		out.println("</body>");
		out.println("</html>");
	}

}

 

이는 웹 사이트를 새로고침 할 때마다 주사위 이미지를 랜덤으로 가져오는 프로그램이다. 이와 같은 소스코드들을 동적 리소스라하고, 불러오는 이미지는 정적 리소스라고 한다. 따라서, 서버가 제공하는 리소스는 크게 정적, 동적 리소스이다.