tuter77

Spring : 웹 브라우저에 바뀌는 주사위 구현. 본문

SpringStudy

Spring : 웹 브라우저에 바뀌는 주사위 구현.

tuter77 2023. 1. 29. 20:19

▷ 실습.

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("</html>");
		out.println("</body>");
		out.println("</html>");
	}

}

위의 코드를 보면, 어노테이션을 사용해서 브라우저의 /rollDice라는 요청을 url을 통해 받을 때마다 이미지가 바뀌는 프로그램을 구현했다.

컨텐츠 타입을 html 텍스트로 지정하고, 인코딩은 utf-8로 한다. 

그 아래의 out.println 구문은 html 헤드 바디(이미지 2개) 구문이다.

기존엔 img src= 를 이용해서 이미지 파일 경로만 지정해줘서 이미지가 변하지 않았는데, 위의 Math 랜덤을 이용한 변수를 이미지 넘버에 대입해줘서 웹을 새로고침 할 때마다 이미지가 바뀌게 되었다.

 

클래스와 이미지파일은 동적 리소스와 정적 리소스로 구분해서 볼 수 있다.(서버 제공 리소스)

정적 리소스는 이미지파일, js파일, css 파일, html 파일 등은 변하지 않는 정적 리소스다.

동적 리소스는 프로그램, 스트리밍 등이 포함되는데 리소스 내용이 고정되어있지 않은 것을 말한다.

 

정리하면 클라이언트의 요청을 url을 통해 서버로 받으면 서버(우리)에서는 text문서(문자열, html 등)을 out.print() 해주어 브라우저에 응답해주면 되는 것이다.

 

위 내용은 2023.01.05에 공부한 내용입니다.

링크 : https://dudwls3278.tistory.com/36