backend
  • README
  • DOCS
    • Java Docs
    • Servlet Docs
    • JSP Docs
    • DB & SQL Docs
    • Spring Boot Docs
    • Spring Security Docs
    • AWS Docs
  • 설치하기
    • Intellij 설정
  • 자바
    • 01 Java란?
    • 02 자바 시작하기
    • 03 자료형과 연산자
    • 04 제어문
    • 05 메소드
    • 06 클래스 기초
      • Static 보충자료
      • 패키지 보충자료
    • 07 객체지향 프로그래밍
    • 08 클래스 더 알아보기
      • 열거형 ENUM 보충자료
    • 09 클래스와 자료형
      • 다형성 보충자료
      • 제네릭 보충자료
    • 10 컬렉션 프레임워크
      • 컬렉션 프레임워크 보충자료
    • 11 람다식과 함수형 프로그래밍
      • 람다식 보충자료
    • 12 오류 대비하기
      • 오류 보충자료
    • 13 멀티태스킹
      • 멀티태스킹 보충자료
    • 교재보충
      • java.lang
  • 스프링
    • 서블릿, JSP
      • 05 Servlet(서블릿)
        • 서블릿 보충자료
        • 서블릿 추가코드
        • XML, YAML, JSON
      • 06 JSP(자바 서버 페이지)
        • JSP 보충자료
      • 07 JSTL(JSP 스탠다드 태그 라이브러리)
        • JSTL 보충자료
      • 08 Cookie(쿠키), Session(세션)
      • 09 서블릿,필터,리스너
        • 서블릿,필터,리스너 보충자료
      • 11 도서관리 프로젝트 실습
    • Spring Boot
      • 01 스프링 등장 배경, 객체지향
        • 스프링 등장 배경, 객체지향 보충자료
      • 02 IOC(제어의 역전), DI(의존성 주입)
        • IOC 보충자료
        • DI 보충자료
      • 03 스프링 구조
        • 스프링 구조 보충설명
      • 04 테스트코드 실습
      • 05 스프링 빈 설정
        • 스프링 빈 설정 보충자료
      • 06 싱글톤
        • 싱글톤 보충 자료
      • 07 스프링 빈 자동설정
        • 스프링 빈 자동설정 보충자료
      • 08 빈 생명주기
        • 빈 생명주기 보충자료
      • 09 빈 스코프
        • 빈 스코프 보충자료
      • 10 스프링 MVC
        • 스프링 MVC 보충자료
        • 데이터베이스 연동에 필요한 부분
      • 11 Validation(검증)
        • Validation(검증) 보충자료
      • 12 Bean Validation(빈검증)
        • Bean Validation(빈검증) 보충자료
      • 13 예외처리
        • 예외처리 보충자료
      • 14 타입변환
      • 15 JDBC(Java Database Connectivity)
      • 16 커넥션풀
      • 17 트랜잭션
        • 트랜잭션 보충자료
      • 18 JDBC 템플릿 활용
      • 19 MyBatis
      • 20 JPA(Java Persistence API)
      • 22 게시판 프로젝트 실습
    • Spring Security
      • 보안(Security)
      • Spring Security
      • 2. Spring Security 알아보기
        • 보안 위협 실제 사례와 방어 전략
      • 3. Spring Security 기본 동작 흐름
      • 4. Spring Security로 인증 권한 추가하기
        • Spring Security의 인증 및 인가
      • 5. Spring Security에서 세션 관리하기
        • 세션(Session)과 쿠키(Cookie) 비교, 토큰(Token)과의 관계
        • 해싱 및 해싱알고리즘
        • base64
      • 6. Spring Security 악용 보호
        • SameSite
      • 7. Spring Security로 인가 권한 추가하기
      • 8. Bcrypt(비크립트) 암호화
      • OAuth2 적용하기
  • 네트워크
    • HTTP
    • OSI 7계층
  • DB&SQL
    • 01 Database(데이터베이스)와 SQL 개요
    • 02 관계형 모델
    • 03 집합
    • 04 JOIN 연산
    • 05 MySQL
      • 세이브포인트
      • DBeaver, Mysql 오토커밋 설정 관련
    • 06 SQL 기초
      • 예시데이터 쿼리문
    • 07 SQL 실습
      • 실습 스키마
    • 08 Join 활용
      • 실습스키마
    • 09 SQL 활용
      • 실습스키마
    • 10 정규화
      • 실습 스키마
    • 데이터타입
    • 예시 프로젝트 스키마 구성
  • AWS
    • SSL 연결하기
    • 보충설명
Powered by GitBook
On this page
  1. 스프링
  2. 서블릿, JSP
  3. 07 JSTL(JSP 스탠다드 태그 라이브러리)

JSTL 보충자료

sessionScope는 Java의 JSP(Jakarta Server Pages)에서 JSTL(JSP Standard Tag Library)을 사용할 때, 특정 범위(scope)에 저장된 데이터에 접근하기 위한 객체 중 하나입니다. 여기서는 sessionScope를 통해 현재 사용자 세션에 저장된 데이터를 가져옵니다.

Scope란?

JSP에는 데이터를 저장할 수 있는 4가지 범위가 있습니다. 각 범위는 데이터를 저장하는 영역과 유효 범위를 정의합니다:

  1. pageScope

    • 현재 JSP 페이지에서만 사용 가능한 데이터.

    • 같은 페이지 내에서도 다른 include된 JSP 파일에서는 접근할 수 없음.

  2. requestScope

    • 현재 요청(request) 내에서 유효.

    • 같은 요청을 처리하는 다른 JSP 파일, 서블릿에서도 접근 가능.

  3. sessionScope

    • 사용자의 세션 동안 유지.

    • 사용자가 웹 애플리케이션을 방문하고 나가는 동안(브라우저를 닫거나 세션이 만료될 때까지) 데이터가 유지됩니다.

  4. applicationScope

    • 애플리케이션이 실행되는 동안 유효.

    • 같은 웹 애플리케이션 내 모든 사용자와 요청이 공유할 수 있음.

sessionScope의 특징

  • 세션 단위 데이터 저장: sessionScope는 세션에 저장된 데이터를 가져오거나 설정하는 데 사용됩니다.

    • 사용자는 브라우저를 열고 애플리케이션에 접속하면 세션이 생성됩니다.

    • 세션 데이터는 기본적으로 사용자별로 분리되어 있으며, 세션 타임아웃(기본값: 30분) 후 삭제됩니다.

  • 저장 방식: session.setAttribute("key", value) 메서드로 세션에 데이터를 저장하면, JSP에서는 sessionScope.key로 접근할 수 있습니다.

  • 예시:

    // 서블릿에서 세션에 데이터 저장
    HttpSession session = request.getSession();
    session.setAttribute("username", "JohnDoe");
    // JSP에서 세션 데이터 출력
    <p>Welcome, <c:out value="${sessionScope.username}" /></p>

    여기서 sessionScope.username은 서블릿에서 설정한 "JohnDoe" 값을 참조합니다.

왜 사용하나요?

  1. 사용자 정보 저장:

    • 로그인한 사용자 정보를 저장해 여러 JSP 페이지에서 재사용.

  2. 페이지 간 데이터 유지:

    • 한 페이지에서 설정한 데이터를 다른 페이지에서도 사용할 수 있도록 유지.

  3. 데이터 보호:

    • 세션은 사용자별로 구분되므로 다른 사용자의 세션 데이터와 섞이지 않습니다.

동작 원리

  1. 클라이언트가 서버에 요청을 보낼 때, 서버는 세션을 식별하기 위해 클라이언트 쿠키(JSESSIONID)를 확인합니다.

  2. 세션이 없으면 새로운 세션을 생성하고, 데이터를 저장합니다.

  3. 클라이언트는 브라우저를 통해 세션 ID를 유지하며 서버에 데이터 요청 시 동일 세션으로 데이터를 공유합니다.

주의 사항

  1. 세션 크기 관리:

    • 세션에 너무 많은 데이터를 저장하면 메모리를 많이 사용하므로 주의해야 합니다.

  2. 세션 타임아웃:

    • 세션은 일정 시간이 지나면 만료되므로 중요한 데이터를 저장할 때는 별도의 백업이 필요합니다.

  3. 보안:

    • 민감한 데이터(예: 비밀번호)는 세션에 저장하지 않는 것이 좋습니다. 대신 암호화된 토큰을 사용하는 것이 안전합니다.

sessionScope는 특히 로그인한 사용자 정보를 페이지 간에 유지할 때 유용하게 쓰이는 중요한 범위입니다.

Previous07 JSTL(JSP 스탠다드 태그 라이브러리)Next08 Cookie(쿠키), Session(세션)

Last updated 5 months ago