본문 바로가기
개발공부 개발새발/Spring

Spring mvc) 요청과 응답

by 휴일이 2022. 10. 22.

 

스프링 강의를 보고

요청을 받고 응답을 하는 것을 만들어보았다

서버가 클라이언트로부터 request(요청)을 받고

그 요청에 따라 response(응답)을 해준다...!!

 

package com.fastcampus.ch2;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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

//년 월 일 입력하면 요일을 알려줌
@Controller
public class YoilTeller {
		@RequestMapping("/getYoil")
//	public static void main(String[] args) {
		public static void main(HttpServletRequest request,HttpServletResponse response) throws IOException {
		
		//1. 입력
		String year = request.getParameter("year");
		String month = request.getParameter("month");
		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:월요일...
		char yoil = " 일월화수목금토".charAt(dayOfWeek);
		
		//3.출력
		response.setContentType("text/html");
		response.setCharacterEncoding("UTF-8");	
		PrintWriter out=response.getWriter(); // response 객체에서 브라우저로의 출력 스트림을 얻는다
		out.println(year+"년 "+month+"월 "+day+"일은");
		out.println(yoil+"입니다");
		
	}

}

 

 

HttpServletRequest request <-요청받을게

HttpServletResponse response <-응답할게

 

response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");

응답을 할 형식을 알려줌!!

 

PrintWriter out=response.getWriter();

out.println(year+"년 "+month+"월 "+day+"일은");

1.URL로 요청을 받을 것이다....

2.요청 받은 걸 이런 형식으로 출력할 것이다...

 

System.out.println 은 콘솔에 출력하는 거라서

콘솔에만 출력되고ㅠ 주소를 치고 들어가면 404 오류가 뜬다

 

PrintWriter로 response.getWriter 로 받으면 클라이언트에게 출력해줘서

브라우저에 바로 출력이 된당

 

 

 

결과

오늘은 토요일!

 

깔ㅡ끔ㅋㅋ

 

 

이걸 토대로!!

랜덤 주사위가 나오게 하는 사이트도 만들어보장

 

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; //이미지가 6장 있으니 6까지 랜덤 출력
		
		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'>"); //"+idx1+"을 하여 랜덤 숫자 이미지가 출력되게 함
		out.println("<img src='resources/img/dice"+idx2+".jpg'>");
		out.println("</body>");
		out.println("</html>");
		
	}
}

 

결과는?

 

새로고침 할 때마다 달라짐ㅋㅋ

 

 

서버가 제공하는 리소스에는

1.정적 리소스 :  프로그램이 생성해내는 리소스내용이 고정되어 있지 않은 것, 프로그램, 스트리밍(라이브 방송)

2.동적 리소스 : 이미지, *.js, *.css, *html 같은 파일

 

 

클라이언트

ㄴ 서비스를 요청하는 애플리케이션 : 브라우저

 

서버

ㄴ 서비스를 제공하는 애플리케이션 

 

1.브라우저로 프로그램을 호출해서 요청하면,

2.서버는 그 프로그램을 실행 (여기서는 문자열html을 만들었음)

3.결과를 문자열로 출력하고

4.브라우저는 그 문자열을 해석해서 보여줌

 

 

 

 

스프링 강의 결제하고

스프링 배워봐야지~룰루 했는데

셋팅만 5시간 이상 걸린듯...?

 

STS는 결국 끝까지 안 돼서

껍데기 파일 import해서 연습함

개같다 이거에용~~~~~~~~

728x90