본문 바로가기

Dev82

URI 템플릿 사용 - @PathVariable, @RequestMapping RESTful 서비스의 영향으로 URI를 다음과 같이 REST 방식으로 구성하는 경우가 대부분이다. http://somehost/users/codingco http://somehost/games http://somehost/forum/board1/10 이전에는 http://somehost/users/userinfo?id=codingco와 같이 파라미터를 이용해서 아이디나 이름을 전달받았다면, 이제는 URI에 아이디나 이름 등이 포함되도록 URL을 구성하고 있다. SPRING 3버전에 추가된 기능 중 하나인 URI 템플릿을 이용하면 REST 방식의 URL 매칭을 쉽게 처리할 수 있다. 🎈. URI 템플릿을 사용하는 방법 @RequestMapping Annotation의 값으로 {템플릿변수}를 사용한다. @.. 2022. 10. 20.
DispatcherServlet - alwaysUseFullPath 💡. DispatcherServlet DispatcherServlet은 DefaultAnnotationHandlerMapping 클래스를 기본 HandlerMapping 구현체로 사용한다. 기본 설정은 컨텍스트 내에서의 전체 경로가 아닌 Servlet 경로를 제외한 나머지 경로에 대해 Mapping을 처리한다. HTML 삽입 미리보기할 수 없는 소스 DispatcherServlet에 대해서 위와 같이 Servlet Mapping을 설정했다고 했을 때 위 코드는 *.do로 오는 요청과 /game/으로 오는 요청을 dispatcherServlet이 처리하도록 설정하고 있다. 이 경우 @RequestMapping은 다음과 같이 설정 할 수 있는데 HTML 삽입 미리보기할 수 없는 소스 코드만 보면 /searc.. 2022. 10. 20.
스프링 ViewResolver 스프링 컨트롤러는 뷰에 의존적이지 않다. 컨트롤러는 아래 코드와 같이 결과를 생성할 뷰의 이름만 지정할 뿐이다. HTML 삽입 미리보기할 수 없는 소스 컨트롤러가 지정한 뷰 이름으로부터 응답 결과 화면을 생성하는 View 객체는 ViewResolver가 구한다. 💡. ViewResolver 인터페이스 HTML 삽입 미리보기할 수 없는 소스 ViewResolver Interface는 위와 같이 정의되어 있다. ViewResolver는 뷰 이름과 지역화를 위한 Locale을 파라미터로 전달받으며, Mapping되는 View 객체를 리턴한다. 만약, Mapping되는 View 객체가 존재하지 않으면 null을 리턴한다. 💡. View 객체 모든 뷰 클래스는는 View Interface를 구현하고 있으며, Vi.. 2022. 10. 19.
HandlerInterceptor : 요청 가로채기 Spring이 기본적으로 제공하는 HandlerMapping은 HandlerInterceptor를 이용해서 컨트롤러가 요청을 처리하기 전과 처리한 후에 알맞은 기능을 수행할 수 있도록 하고 있다. 조건에 따라 컨트롤러에 요청을 전달하지 않고 싶거나 컨트롤러가 요청을 처리한 후에 ModelAndView 객체를 조작하고 싶은 경우에 HandlerInterceptor를 사용하면 된다. HandlerInterceptor 인터페이스는 세 개의 메서드를 정의하고 있다. boolean preHandle(HttpServletRequest request, HttpServletResponse, Object handler) void postHandle(HttpServletRequest request, HttpServletR.. 2022. 10. 19.
@InitBinder 어노테이션 스프링은 기본적으로 문자열을 지정한 타입의 값으로 변환할 때 Java빈의 Property Editor를 사용한다. 스프링 MVC가 HTTP 요청 파라미터를 객체의 프로퍼티 값으로 저장할 때 사용하는 WebDataBinder 역시 내부적으로 PropertyEditor를 사용하게 된다. 🎈. @InitBinder Annotation을 이용한 Date 타입 변환 처리 값이 '2021-12-24'인 HTTP 요청 파라미터를 java.util.Date 타입의 프로퍼티에 저장하고 싶을 때가 있는데, 이 경우 스프링 MVC의 WebDataBinder에 커스텀 PropertyEditor를 등록해주면 된다. 스프링은 java.util.Date 타입에 대한 PropertyEditor인 CustomDateEditor를 제공.. 2022. 10. 18.
스프링 Multipart : 파일 업로드 처리 쇼핑몰 등의 웹 사이트 구축 중 파일 업로드가 필요한 경우 HTML 폼의 속성을 multipart/form-data로 설정해야 한다. HTML 삽입 미리보기할 수 없는 소스 인코딩 타입이 Multipart인 경우 파라미터나 업로드 한 파일을 구하려면 전송 데이터를 알맞게 처리해 주어야 한다. 스프링은 Multipart 지원 기능을 제공하고 있기 때문에 이 기능을 이용하면 추가적인 처리 없이 Multipart 지원 기능을 이용해서 업로드 한 파일을 처리할 수 있다. 🎈. MultipartResolver 설정 Multipart 지원 기능을 사용하려면 먼저 MultipartResolver를 스프링 설정 파일에 등록해 주어야 한다. MultipartResolver는 Multipart 형식으로 데이터가 전송된 경.. 2022. 10. 18.