일기장
Published 2023. 5. 17. 12:21
MVC패턴 예제 웹개발

HttpRequest를 입력받고 HttpResponse를 출력하는 프로그램과 쿼리스트링을 GET 방식으로 얻어서 처리하여 view를 반환하는 프로그램은 서로 다른 양상을 띠고 있습니다.

 

HttpRequest와 HttpResponse를 이용한 MVC패턴 프로그래밍

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

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;

@Controller
public class YoilTeller {
    @RequestMapping("/getYoil") // http://localhost:8080/ch2/getYoil?year=2021&month=10&day=1
    public 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);
        char yoil = " 일월화수목금토".charAt(dayOfWeek);   // 일요일:1, 월요일:2, ... 

        // 3. 출력
        response.setContentType("text/html");    // 응답의 형식을 html로 지정
        response.setCharacterEncoding("utf-8");  // 응답의 인코딩을 utf-8로 지정
        PrintWriter out = response.getWriter();  // 브라우저로의 출력 스트림(out)을 얻는다.
        out.println("<html>");
        out.println("<head>");
        out.println("</head>");
        out.println("<body>");
        out.println(year + "년 " + month + "월 " + day + "일은 ");
        out.println(yoil + "요일입니다.");
        out.println("</body>");
        out.println("</html>");
        out.close();
    }
}

 

 

 

GET 방식을 이용한 MVC패턴 프로그래밍

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class QueryStringExampleController {
    @GetMapping("/hello")
    public String hello(@RequestParam("name") String name, Model model) {
        String message = "Hello, " + name + "!";
        model.addAttribute("message", message);
        return "hello-view";
    }
}

위의 예시 코드는 Spring MVC를 사용하여 쿼리스트링을 GET 방식으로 처리하고, View를 반환하는 프로그램입니다. /hello 경로로 GET 요청이 들어오면 hello() 메서드가 실행됩니다. @RequestParam 어노테이션을 사용하여 name 파라미터를 쿼리스트링에서 받아옵니다. 이를 활용하여 "Hello, {name}!" 형태의 메시지를 생성하고, 이를 모델에 추가합니다.

마지막으로 return "hello-view"를 통해 "hello-view"라는 뷰를 반환합니다. 이 뷰는 실제로 Thymeleaf나 JSP와 같은 템플릿 엔진을 사용하여 동적으로 생성된 HTML을 표시합니다. 따라서 이 예시 코드는 쿼리스트링에 따라 다른 결과를 보여주는 동적인 웹 애플리케이션의 일부분입니다.

'웹개발' 카테고리의 다른 글

@RequestsParam, @ModelAttribute  (0) 2023.05.20
서블릿과 JSP  (1) 2023.05.19
HTTP에서 바이너리 파일 다루기  (0) 2023.05.15
HTTP에 대한 이해  (0) 2023.05.15
웹 브라우저와 웹 서버  (0) 2023.05.14
profile

일기장

@공군급양

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!