본문 바로가기
JSP

JSP(쿠키)_2024-08-26

by 앵보몬 2024. 8. 26.
728x90
반응형

쿠키 작동 원리

JavaServer Pages (JSP)는 Java 기반의 웹 애플리케이션을 만들기 위한 기술로, HTML 코드 내에 Java 코드를 삽입할 수 있게 해줍니다. JSP의 핵심 개념은 다음과 같습니다.

서버에서 쿠키 생성 : 서버는 쿠키를 생성하고 이름, 값, 유효기간 등의 정보를 설정합니다.

응답에 추가 : response.addCookie() 메서드를 사용하여 생성된 쿠키를 HTTP 응답에 추가합니다.

클라이언트 저장 : 클라이언트의 브라우저가 응답에 포함된 쿠키를 저장합니다.

서버에서 읽기 : 클라이언트가 이후 서버에 요청할 때 쿠키를 포함시켜 보내고, 서버는 이를 읽어 필요한 정보를 활용합니다.

 

쿠키의 용도

JSP (JavaServer Pages) 포인트에 대해 정리하자면 다음과 같습니다

사용자 인증 : 로그인 상태를 유지하고 사용자 인증 정보를 저장합니다.

사용자 설정 저장 : 사용자 맞춤 설정이나 선호도를 저장합니다.

장바구니 정보 저장 : 쇼핑몰에서 장바구니에 담긴 상품 정보를 저장합니다.

방문 기록 추적 : 사용자의 방문 기록이나 활동을 추적합니다.

 

쿠키의 단점

보안 취약성 : 쿠키에 민감한 정보를 저장하면 해킹 위험이 있으며, 암호화하지 않으면 노출될 수 있습니다.

브라우저 설정 : 사용자 브라우저 설정에 따라 쿠키가 비활성화될 수 있습니다.

③ 서블릿 컴파일 : 변환된 서블릿 자바 파일(.java)을 컴파일하여 서블릿 클래스 파일(.class)을 생성합니다. 이 컴파일 과정은 자바 컴파일러에 의해 이루어지며, 서블릿 클래스 파일은 자바 바이트코드로 변환됩니다.

크기 및 개수 제한 : 쿠키는 크기와 개수에 제한이 있어 많은 양의 데이터를 저장할 수 없습니다.

 

Cookie.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
    // 쿠키 생성
    String userName = "홍길동";
    Cookie userCookie = new Cookie("userName", userName);
   
    // 쿠키의 유효 기간 설정 (예 : 1시간)
    userCookie.setMaxAge(60 * 60);
   
    response.addCookie(userCookie);
%>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 생성</title>
</head>
<body>
    <h2>쿠키가 생성되었습니다.</h2>
    <p>사용자 이름 : <%= userName %></p>
    <p>쿠키 ID : <%= session.getId() %></p>
    <p>쿠키 유지시간 : <%= session.getMaxInactiveInterval() %></p>
    <p><a href="ReadCookie.jsp">쿠키 읽기 페이지로 이동</a></p>
</body>
</html>

 

ReadCookie.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
    // 쿠키 배열 가져오기
    Cookie[] cookies = request.getCookies();
    String userName = null;
   
    // 쿠키에서 사용자 이름 찾기
    if (cookies != null){
        for (Cookie cookie : cookies){
            if ("userName".equals(cookie.getName())) {
                userName = cookie.getValue();
                out.println("쿠키ID" +cookie.getName() +"<br>");
                out.println("쿠키 생성 시간" +System.currentTimeMillis() +"<br>");
                out.println("쿠키ID" +cookie.getMaxAge() +"초<br>");
                break;
            }
        }
       
    }
%>
<html>
<head>
<meta charset="UTF-8">
<title>쿠키 읽기</title>
</head>
<body>
    <h2>쿠키 값 읽기</h2>
    <p>저장된 사용자 이름 : <%= userName != null ? userName : "쿠키가 없습니다." %></p>
    <p><a href="Cookie.jsp">쿠키 생성 페이지로 이동</a></p>
</body>
</html>
728x90
반응형