[Spring] resource 폴더 이용하기

2024. 7. 8. 19:05WebBack/Spring

Spring 주제 URL
원격 프로그램은 어떻게 실행될까? https://ycraah.tistory.com/37
AWS에 배포하기 https://ycraah.tistory.com/38
HTTP 요청을 받아 화면에 출력하기 https://ycraah.tistory.com/39

 

1. 두 개의 주사위 

아래의 TwoDice 클래스는 두 개의 주사위를 던져서 값을 HTML로 응답하도록 하는 코드이다. 그리고 주사위의 값은 이미지 형식으로 나오도록 만들었다. 따로 입력을 받지 않기 때문에 HttpServletResponse만을 매개변수로 주었다. 그리고 html을 출력해야하니 출력 타입은 'text/html'로 지정하고, 글자가 깨지는 것을 방지하기 위해 인코딩을 'utf-8'로 하도록 했다. 

@Controller
public class TwoDice{
	@RequestMapping("/rollDice")
	public static 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" + idx1 + ".jpg'>");
		out.println("<img" + idx2 + ".jpg'>");
		out.println("</body>");
		out.println("</html>");	
}
}

 

예를 들어서 한 주사위의 랜덤값이 1이 나오면 아래와 같은 idx1.jpg의 그림이 출력된다. 

그런데 이 이미지의 경로는 어떻게 지정해야할까?

 

2. resource 폴더

ch2 패키지 안에 src라는 폴더가 있다. 여기서 main -> webapp -> resources 폴더로 들어가자. 여기에 img 폴더를 만들고 그 안에 이미지 파일을 저장해보자. 

그 다음에 이미지 경로를 다음과 같이 변경하면 된다. 경로는 resources부터 시작한다. 

 

out.println("<img src='resources/img/dice" + idx1 + ".jpg'>");
out.println("<img src='resources/img/dice" + idx2 + ".jpg'>");

 

3. 결과

 

위와 같이 입력하면 다음과 같은 결과가 나온다. 정상작동이 되는 것을 알 수 있다.