상세 컨텐츠

본문 제목

[SPRING] ServletRequestEvent To Session | 커스텀ServletRequestListener에서 Session 이용하기

JAVA/SPRING

by ranlan 2022. 12. 27. 14:49

본문

728x90

관련 포스팅 >  2022.12.27 - [여러가지/웹과 개발] - [SERVLET, JSP] 다양한 이벤트 리스너(Listener)

 

[SERVLET, JSP] 다양한 이벤트 리스너(Listener)

리스너(Listener) 특정 이벤트가 발생하면 정의한 내용(메서드)을 실행하는 컴포넌트로 '이벤트 핸들러'라 부르기도 한다. 서블릿(Servlet)에서 활용되는 리스너는 웹 어플리케이션 수행과 관련하여

juran-devblog.tistory.com

ServletRequestListener를 구현한 커스텀 리스너의 오버라이딩 메서드

// import
import javax.servlet.ServletContext;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

public class CustomListener implements ServletRequestListener {

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
    	// 요청 생성 시 실행
    }
    
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
    	// 요청 응답 후 소멸 시 실행
    }
}

 

해당 리스너는 요청과 응답의 사이클에 대해서만 관여하며 인자로 받는 ServletRequestEvent 활용하여 세션 정보를 얻을 수 있다.

#1

ServletContext ctx = sre.getServletContext();
HttpServletRequest request = (HttpServletRequest)sre.getServletRequest();
HttpSession session = request.getSession();

#2

ServletRequestAttributes servletRequestAttribute = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpServletRequest httpRequest = servletRequestAttribute.getRequest();
HttpSession httpSession = servletRequestAttribute.getRequest().getSession(true);
728x90

관련글 더보기

댓글 영역