본문 바로가기

Spring/Spring MVC12

spring에서 이미지 첨부기능 1. 이미지 파일 서버 저장 HTTP요청 Content-Type헤더 : multipart/form-data @Controller에서 @ModelAttribute로 데이터를 자바객체로 파징 File? 로 이미지파일 서버 저장 2. DB에 이미지 파일의 부분경로( filePath )를 저장  3. filePath에 해당하는 이미지 파일을 응답으로 보내기 WebMvcConfigurer를 구현해 ResourceHandler를 추가 2025. 3. 31.
SseEmitter , SSE통신 SseEmitterSseEmitter는 Spring MVC에서 Server-Sent Events(SSE)를 지원하는 클래스   서버에서는 클라이언트와 매핑되는 SSE 통신 객체를 만든다.만료시간이 되면 브라우저에서 자동으로 서버에 재연결 요청을 보냅니다. Emitter를 생성하고 나서 만료 시간까지 아무런 데이터도 보내지 않으면 재연결 요청시 503 Service Unavailable 에러가 발생할 수 있습니다. 따라서 처음 SSE 연결 시 더미 데이터를 전달해주는 것이 안전합니다.  SseEmitter의 send()가 실행되면 HTTP 메시지를 전송하는 것이 아니라, 데이터만 전송됨( 이미 수립된 HTTP 연결을 통해 스트리밍됨,  ) SseEmitter관련 예외가 발생해 @ExceptionHandle.. 2025. 2. 10.
DispatcherServlet, doDispatch public class DispatcherServlet extends FrameworkServlet { ~ }public abstract class FrameworkServlet extends HttpServletBean implements ApplicationContextAware { ~ }public abstract class HttpServletBean extends HttpServlet implements EnvironmentCapable, EnvironmentAware { ~ }public interface ApplicationContextAware extends Aware { ~ } HttpServlet - HttpServletBean - FrameworkServlet - DispatcherS.. 2024. 10. 3.
DispatcherServlet 초기화 까지 SpringBoot프로젝트 실행( @SpringBootApplication )하면 다음과 같은 순서로 event들이 발생한다.tomcat초기화 > 스프링컨테이너 초기화 > tomcat시작 > SpringBoot애플리케이션 시작  DispatcherServlet의 경우는 SpringBoot애플리케이션이 실행된 다음에, 실제로 HTTP 요청이 들어올 때 초기화된다.( Lazy Initialization )   SpringBoot애플리케이션 실행  >  첫 HTTP요청 받음  >  DispatcherServlet 스프링빈 초기화  > DispatcherServlet이 서블릿 컨테이너에 등록되고, 서블릿으로서 초기화 > DispatcherServlet 초기화 완료 > 요청 처리스프링 부트의 자동 설정 기능에 의.. 2024. 8. 25.
서블릿Filter , 스프링HandlerInterceptor 서블릿Filter : 요청, 응답에 엄청 앞쪽에 포지션servlet.Filter 에서 로그인(인증) 확인처리요청 url에 따라, 인증 체크디페servlet으로 가도록 or 디페servlet 안가고 바로 응답 스프링HandlerInterceptor 2024. 6. 3.
HttpSession Cookie메커니즘HTTP헤더의 필드들 : Set-Cookie , Cookie브라우저는 ' Set-Cookie: ~ ' 를 기반으로 쿠키저장소( Application - Storage - Cookies )에 쿠키를 만들거나 삭제함쿠키저장소에 있는 쿠키를 Request Headers에 ' Cookie : ~ ' 이런식으로 넣어줌( 모든 요청에 쿠키정보 자동 포함 ) 요청을 처리하는 도중 새로운 HttpSession이 생기면, 자동으로 응답헤더에 Set-Cookie : JSESSEIONID = 세션ID 가 추가되어 Cookie를 이용하게 된다. jakarta.servlet.http.HttpSession @Controllerpublic class ~ { @GetMapping(~) public ~ (Htt.. 2024. 5. 28.