오늘의하루

Java Spring - HTTP 요청과 응답 본문

JAVA

Java Spring - HTTP 요청과 응답

오늘의하루_master 2022. 12. 8. 00:42
반응형

실행하는 방법은 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를 추가해주면 이제 터미널이 아닌 브라우저를 통해 결과 값을 줄 수 있다.

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

반응형
Comments