ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java Spring - HTTP 요청과 응답
    JAVA 2022. 12. 8. 00:42
    728x90
    반응형

    실행하는 방법은 target에서 오른쪽 버튼 클릭 후 show in > Terminal를 한 후 터미널창에서 cd classes를 한 후 "java 패키지명.파일명 2022 12 8" 이렇게 작성해주면 원하는 결과물이 나오는걸 알 수 있다.

    이때 java 인터프리터 mian 메서드를 호출하고 뒤에 붙은 숫자들을 가지고 문자열 배열을 만들게 된다.

    • 이때 만들어진 문자열 배열은 순서대로 args[0], args[1] ... 지정된다.

    HTTP 요청과 응답

    URL을 통해 요청하면 톰캣에서는 HttpServletRequest 객체를 만든 후 요청한 정보를 저장해서 해당 메서드의 매개변수로 넘겨준다.

    // 기본 예시
    @Controller
    public class RequestInfo{
        @RequestMapping("/requestInfo")
        public void main(HttpServletRequset request){
            System.out.println("request.getMethod() = " + request.getMethod());
            System.out.println("request.getProtocol() = " + request.getProtocol());
            System.out.println("request.getScheme() = " + request.getScheme());
        }
    }

    HttpServletRequest의 메서드

    URL  = http://52.78.79.190:8080/ch2/requestInfo?year=2021&month=10&day=1

    • getScheme()
      • result : http
    • getServerName()
      • result : 52.78.79.190
    • getServerPort()
      • result : 8080
    • getContextPath()
      • result : ch2
    • getServletPath()
      • result : requestInfo
    • getQueryString()
      • result : year=2021&month=10&day=1
        • getParameter("year") = "2021"
        • getParameter("month") = "10"
        • getParameter("day") = "1"
    • getRequestURL()
      • result : http://52.78.190:8080/ch2/requestInfo
    • getRequestURI()
      • result : ch2/requestInfo

    위에서 터미널에서 작동하던 프로그램을 웹에서 작동시키기 위해 변형한 코드지만 아직도 System.out.print를 통해 출력하기 때문에 웹에서는 작동하지 않는것 처럼 보인다.

    HttpServletResponse를 추가해주면 이제 터미널이 아닌 브라우저를 통해 결과 값을 줄 수 있다.

    결과 값을 보여주기 전에 필수로 출력할 내용의 타입을 지정해주어야 하는 데 그 이유는 컴퓨터는 우리가 보내는 출력물이 텍스트인지 숫자인지 알지 못하기 때문입니다.

    728x90
    반응형
Designed by Tistory.