JAVA-WEB January 04, 2021

JSP-04 SESSION

Words count 3.3k Reading time 3 mins.

Session 이란 무엇인가

  1. 데이터를 저장하는 4개 영역 중 하나이다 (pageContext, application, request, session)
  2. 서버 측 영역 (쿠키에 비해 보안이 된다)
  3. 웹 브라우저가 켜져 있는 동안 유지된다.
  4. session에 데이터 저장하기
    setAttribute(“속성명”, 값); -> 속성을 변수처럼 사용
  5. session의 데이터 알아내기
    getAttribute(“속성명”) -> 모든 속성은 Object 타입으로 저장되므로 정상적인 사용을 위해서 캐스팅이 필요

Session A.jsp

<body>

    <form action="/06_SESSION/ex01/02_session_B.jsp">
        <input type="text" name="data" />
        <button>세션에 저장하기</button>

    </form>

</body>
</html>

Session B.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

    <%
        request.setCharacterEncoding("UTF-8");

        String data = request.getParameter("data");

        // 세션에 담기
        session.setAttribute("data", data);

        // 화면 이동
        // 기존의 request 정보를 넘기지 않는 이동
        response.sendRedirect("/06_SESSION/ex01/02_session_C.jsp");

    %>

Session C.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

    <%
        request.setCharacterEncoding("utf-8");

        String data = "데이터 없음";

        if (session.getAttribute("data") != null ) {
            data = session.getAttribute("data").toString();
            //data = (String)session.getAttribute("data");
        }
    %>

    <h3>세션의 data : <%=data%></h3>

    <form action="/06_SESSION/ex01/02_session_D.jsp">
        <button>세션 data 삭제하기</button>
    </form>

</body>
</html>

Session D.jsp

        // 1. 특정 속성만 제거하기
        session.removeAttribute("data");

        // 2. 세션 전부 초기화하기
        session.invalidate();

        // 3. 이전 페이지로 이동
        response.sendRedirect("/06_SESSION/ex01/02_session_C.jsp");

결과

1.

2.

3.

0%