웹앱개발/Spring boot

응답 Response

heeyaaa! 2021. 6. 22. 17:53
SMALL

POST

오브젝트(User)인데 JSON으로 바뀌었다. 왜?

 

 

컴포넌트 스캔 기준

이유 : IoC 컨테이너에 객체 등록

위치 : Package 내부만 스캔 . src/main/java 위치만 풀스캔(순차적으로 하나씩) -> com.cos.secondapp

 

IoC 컨테이너는

(

    1. TestController

)

 

요청 : Post http://localhost:8000/

header : x-www-form-urlencoded

body : username=ssar&password=1234

=> 디스패쳐 가로채기 =>IoC 스캔!!! (/<- 이걸 스캔) => @PostMapping("/") 호출

=> 매개변수 (User data)

 

post(new User(ssar, 1234));

내부 객체 = bean

response 응답

  • MessageConverter(데이터) @RestController - 기본적으로 JSON으로 리턴한다.
  • ViewResolver(뷰) @Controller - html으로 리턴 왜? - ViewResolver(뷰)는 웹서버


ViewResolver -> 내가 설치한 Template Engine에 따라 ViewResolver의 확장자가 달라짐

ex) mustache

 

하지만 JSP를 할 때는 틀을 벗어남 

template engine 라이브러리 -> static 폴더

template engine을 설치했으면 ViewResolver가 templates 폴더에 찾아가서 자기에 맞는 확장자를 찾음

 

WEB-INF은 외부 접근 불가 폴더 

유저의 직접접근을 막지만, 컨테이너는 접근이 허용됩니다. 다시 말하면 사용자는 WEB-INF 아래의 JSP 페이지를 URI 로 접근하여 실행할 수 없으나 컨테이너는 실행 가능하다는 것입니다. - url 패턴을 안 쓰고 uri 패턴 사용...

WEB-INF 폴더
장점 WEB-INF 폴더에 있을 경우 localhost:8090/WEB-INF/test.jsp로 접근이 불가하다. 이로인해 유저의 직접 접근이 어렵워 보안성이 높다.
단점 직접적으로 view를 볼 수 없다. 또한 직접적으로 볼 수 없기 때문에 <a> 앵커 태그로 이동이 불가하며 Controller를 통해서만 이동을 해야 한다.

https://namubada.net/266

 

[스프링 개념] web과 WEB-INF 폴더에 관해서 및 WEB-INF에서의 앵커 태그에 관해서

다음과 같이 두개의 test.jsp 파일이 있다. 하나는 web폴더(webContent)에 있고 하나는 web폴더의 하위 폴더인 WEB-INF 폴더에 있다. 그럼 우선 web 폴더에 있는 test.jsp 파일에 접속해보겠다. 다음과 같이 web

namubada.net

 

Tomcat Jasper로 컴파일 함

버전에 맞게 maven 들고오기
pom.xml에 넣기
# web.xml + server.xml + context.xml
폴더 설정
home.jsp 파일 생성
ViewController.java
브라우저 화면

 

LIST

'웹앱개발 > Spring boot' 카테고리의 다른 글

데이터베이스 연결  (0) 2021.06.25
데이터를 화면에 렌더링  (0) 2021.06.24
객체지향프로그램  (0) 2021.06.22
JSON  (0) 2021.06.22
HTTP 1.1 / BufferdReader(@RequestBody)  (0) 2021.06.22