백기선(인프런 강의)/스프링 웹 MVC
-
HTTP 요청 매핑하기 - URI 패턴 매핑백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 25. 18:19
요청 식별자로 매핑하기 @requestMapping은 다음의 패턴을 지원 ? : 한글자 /author/??? -> /authour/123 * : 여러글자 /author/* -> /author/jinSeok ** : 여러패스 /author/** -> /author/jinSeok/book @RestController public class SampleController2 { @GetMapping({"/hello", "/hi"}) @ResponseBody public String hello() { return "hello"; } @GetMapping({"/hello?"}) @ResponseBody public String hello2() { return "hello"; } @GetMapping({"/hello..
-
HTTP 요청 매핑하기 - 요청 메소드백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 25. 11:50
HTTP Method GET POST PUT PATCH DELETE GET 요청 클라이언트가 서버의 리소스를 쵸어할 때 사용 캐싱할 수 있다(조건적인 GET으로 바뀔 수 있다) 브라우저 기록에 남는다 북마크 할 수 있다 민감함 데이터를 보낼 때 사용하지 않는다(URL에 존재) imdempotent 먹등성 여러번 요청을 하더라도 결과가 달라지지 않는 성질 POST 요청 클라이언트가 서버의 리소스를 수정하거나 새로 만들 때 사용 서버에 보내는 데이터를 POST 요청 본문에 담는다 캐시할 수 없다 브라우저 기록에 남지 않는다 북마크 할 수 없다 데이터 길이 제한이 없다. URI를 보내는 데이터를 처리할 리소스를 지칭 PUT 요청 URL에 해당하는 데이터를 새로 만들거나 수정할 때 사용 POST와 다른점은 "U..
-
HTTP 메시지 컨버터 : XML백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 19. 15:27
OXM(Object-XML Mapper) 라이브러리 중에 스프링이 지원하는 의존성 추가 JacksonXML JAXB 스프링 부트를 사용하는 경우 기본으로 XML 의존성 추가해주지 않기 때문에 아래와같이 의존성을 추가해 준다. javax.xml.bind jaxb-api org.glassfish.jaxb jaxb-runtime org.springframework spring-oxm ${spring-framework.version} 예제 package kr.co.study; import static org.springframework.test.web.client.match.MockRestRequestMatchers.jsonPath; import static org.springframework.test.web...
-
HTTP 메시지 컨버터백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 7. 22:05
영문 설명 docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurer.html#extendMessageConverters-java.util.List- docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurer.html#configureMessageConverters-java.util.List- HTTP 메시지 컨버터 요청 본문에서 메시지를 읽어들이거나(@RequestBody), 응답 ..
-
리소스 핸들러백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 7. 12:01
리소스 핸들러란? 이미지, 자바스크립트, CSS, HTML 파일과 같은 정적인 리소스를 처리하는 핸들러 디폴트(Default) 서블릿 서블릿 컨테이너가 기본으로 제공하는 서블릿으로 정적인 리소스를 처리할 때 사용 한다. tomcat.apache.org/tomcat-9.0-doc/default-servlet.html 스프링 MVC 리소스 핸들러 맵핑 등록 스프링은 정적인 리소스(디폴트 서블릿)들의 요청을 위임해서 처리한다. 가장 낮은 우선 순위로 등록 다른 핸들러 매핑이 "/" 이하 요청을 처리하도록 허용 최종적으로 리소스 핸들러가 처리하도록 tomcat.apache.org/tomcat-9.0-doc/default-servlet.html 리소스 핸들러 설정 어떤 요청패턴을 지원할 것인가 어디서 리소스를 찾..
-
핸들러 인터셉터백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 6. 16:18
HandlerInterceptor 핸들러 맵핑에 설정할 수 있는 인터셉터 핸들러를 실행하기 전, 후(아직 랜더링 전) 그리고 완료(랜더링까지 끝난 이후) 시점에 부가 작업을 하고 싶은 경우에 사용할 수 있다. 여러 핸들러에서 반복적으로 사용하는 코드를 줄이고 싶을 때 사용할 수 있다. 로깅, 인증 체크, Locale 변경 등... boolean preHandle(request, response, handler) 핸들러 실행하기 전에 호출 됨 “핸들러"에 대한 정보를 사용할 수 있기 때문에 서블릿 필터에 비해 보다 세밀한 로직을 구현할 수 있다. 리턴값으로 계속 다음 인터셉터 또는 핸들러로 요청,응답을 전달할지(true) 응답 처리가 이곳에서 끝났는지(false) 알린다. void postHandle(re..
-
WebMvcConfigurer 설정 - 포메터 설정백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 1. 21:17
Fometter Controller에서 URL에 값을 같이 보낼 때 문자열을 객체로 매핑해주는 역할을 하는 기능이다. Formatter에는 Printer와 Parser을 상속 받아 사용한다. Printer 해당 객체를 (Locale 정보를 참고하여) 문자열로 어떻게 출력할 것인가 Parser 어떤 문자열을(Locale 정보를 참고하여) 객체로 어떻게 변환할 것인가 기본 구성도 및 세팅 localhost:8080/hello?jinseok 으로 들어갈 시 @RestController public class SampleController { @GetMapping("/hello/{name}") public String hello(@PathVariable("name") Person person) { return ..
-
스프링 부트에서 JSP 사용하기백기선(인프런 강의)/스프링 웹 MVC 2020. 8. 31. 23:40
제약사항 1. JAR 프로젝트로 만들 수 없다. WAR 프로젝트로 만들어야 한다. 2. Java -JAR로 실행할 수 있지만 "실행가능한 JAR 파일"은 지원하지 않는다. 3. 원더토우(JBoss에서 만든 서블릿 컨테이너)는 JSP를 지원하지 않음 4. Whitelabel 에러 페이지를 error.jsp로 오버라이딩 할 수 없음 ServletInitializer 설명 WAR페이지로 스프링 부트로 만들게 되면 아래와 같은 코드가 생성이 된다. 스프링 부트로 만든 프로젝트는 독립적으로 실행가능한 파일로 만들 수 있다. 하지만 WAR파일로 만든다면 tomcat에 배포하여 실행시킬 수 있기 때문에 이와같은 역활을 하기위해서 커스텀된 SpringBootServletInitializer 를 추가를 하는것이다. pa..