DispatcherServet 커스텀 구현 시 주의할 점
프로젝트/서블릿 기반 쇼핑몰2025. 2. 11. 11:00DispatcherServet 커스텀 구현 시 주의할 점

스프링의 DispatcherServlet을 서블릿으로 커스텀 구현할 때 과거에는 *.do 방식으로 요청을 가로챘기 때문에 상관없었지만, 루트 경로(/)를 활용해서 모든 요청을 가로채는 방식에는 정적 리소스와 관련해서 주의해야 할 점이 있다.이 글에서는 주의할 점과 문제를 해결하는 방법, 그리고 실제 스프링에서 매핑을 처리하는 방식에 대해 알아보겠다.1. 과거의 '*.do' 방식과거에는 *.do로 요청을 가로채는 방식으로 DispatcherServlet을 만들었기 때문에 JSP나 정적 리소스 요청과 서블릿 요청이 섞이지 않았다.정적리소스는 DefaultServlet이 처리하고, jsp는 JspServlet이 처리하고 동적 요청은 *.do 끝나기 때문에 DispatherServlet이 처리했다.그런데 이 방..

JSP 동작 원리
Backend/Servlet | JSP2025. 1. 22. 22:15JSP 동작 원리

JSP는 서버에서 웹 페이지를 동적으로 생성하기 위한 기술이며 실행시점에 서블릿으로 변환되어 처리된다.JSP가 처리되는 방식에 대해서 더 자세히 살펴보도록 하겠다.1. JSP 동작 방식JSP 파일은 클라이언트의 최초 요청이 들어올 때 서블릿으로 변환되고, 이후에는 변환된 클래스를 재사용하는 방식으로 동작한다.즉, 다음과 같은 단계로 처리된다.클라이언트가 JSP 파일 요청JSP엔진(Jasper)이 JSP 파일을 서블릿 자바 코드로 변환하고 컴파일하여 클래스 파일을 생성한다.변환된 서블릿 클래스가 메모리에 로드되고, 클라이언트 요청을 처리한다.최초 변환 후에는 JSP파일이 변환되지 않는 한 매번 변환 및 컴파일 과정을 거치지 않고 기존 변환된 서블릿 클래스를 재사용한다.그리고 jsp에서 변환된 서블릿은 일반..

Java Unchecked Warning 해결 방법
프로젝트/서블릿 기반 쇼핑몰2025. 1. 3. 11:52Java Unchecked Warning 해결 방법

ServletContext의 Attribute에서 List 값을 다운 캐스팅해서 가져올 때 Unchecked Warning이 발생했는데 이 경고를 해결하는 두 가지 방법을 소개해보겠다.1. Unchecked Warning 원인1.1 제네릭과 타입 소거Unchecked Warning은 주로 제네릭과 관련해서 발생한다. 제네릭은 컴파일 타임에만 타입을 유지하고 런타임에는 타입이 소거된다.이로 인해 컴파일 타임에는 타입 안전성을 보장하더라도 런타임에서는 이를 보장하지 못하게 된다.1.2 주요 원인은 Object로 저장해서 제네릭 타입으로 다운 캐스팅을 해야할 때반환 타입이 Object이므로 특정 타입으로 캐스팅할 때 컴파일러는 타입 안전성을 검증할 수 없다. 왜냐하면 런타임에는 제네릭이 소거되기 때문이다.아래..

서블릿 컨테이너 초기화와 스프링의 처리 방식
Backend/Spring2024. 12. 27. 18:25서블릿 컨테이너 초기화와 스프링의 처리 방식

웹 애플리케이션 개발에서 서블릿 컨테이너 초기화는 필수적인 과정이다.서블릿 컨테이너는 애플리케이션 실행 시점에 초기화 작업을 수행하여 서블릿, 필터, 리스너 등을 등록한다.이 글에서는 서블릿 컨테이너 초기화의 전반적인 구조와 이를 기반으로 스프링 레거시와 스프링 부트에서 각각 어떻게 처리하는지 살펴보겠다.1. 서블릿 컨테이너 초기화의 기본 방법1.1 ServletContainerInitializer1.1.1 정의서블릿 3.0 스펙에서 제공하는 ServletContainerInitializer는 서블릿 컨테이너 초기화를 담당하는 표준 인터페이스이다.웹 애플리케이션이 시작될 때 서블릿 컨테이너(Tomcat, Jetty 등)는 이 인터페이스를 구현한 클래스를 자동으로 탐색하고 실행한다.public interf..

Apache Tomcat 버전별 Jakarta EE 의존성 설정
Backend/Servlet | JSP2024. 12. 10. 15:16Apache Tomcat 버전별 Jakarta EE 의존성 설정

Apache Tomcat은 Java 웹 애플리케이션을 실행하는 데 가장 보편적으로 사용되는 서블릿 컨테이너 중 하나이다.Tomcat의 버전에 따라 지원하는 Jakarta EE 사양(Jakarta Servlet, JSP, EL 등)이 달라지며, 이를 바탕으로 프로젝트에 필요한 의존성 설정도 차이가 있다.이 글에서는 톰캣 버전별 Jakarta dependency 설정에 대해서 정리해보겠다.Tomcat 버전별 Jakrta EE 스펙 사양Servlet SpecJSP SpecEL SpecWebSocket SpecAuthentication Spec (JASPIC)Apache Tomcat VersionLatest Released VersionSupported Java Versions6.14.06.02.23.111.0..

image