-
[JSP] cookie, session, removeAttributeWEB/JSP 2022. 9. 9. 19:14
cookie
-쿠키는 웹사이트 접속시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 텍스트 데이터임
-웹사이트는 쿠키를 통해 접속자의 장치를 인식하고 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장함
-쿠키에는 만료일이 있음. 브라우저를 닫는 경우 자동으로 삭제되는 쿠키가 있을 수 있으며 일부는 수동으로 삭제 되기 전까지 남아 있는 쿠키가 있음
필수쿠키 페이지 탐색 웹사이트의 보안 영역 접속 그리고 검색을 포함한 웹사이트의 기본기능을 활성화할 목적으로 사용함 기능쿠키 웹사이트가 접속자의 지역 및 언어 등 웹사이트의 행태 및 외관에 영향을 줄 수 있는 접속자 설정을 저장하도록 허용하며, 접속자 설정에 따라 웹사이트가 작동하도록 도움을 줌 성능쿠키 정보의 익명 수집 및 보고를 통해 웹사이트 운영자가 방문자와 웹사이트 사이의 상호 작용을 이해하는데 도움을 주며, 유저와 상호관계에 대한 통계자료를 제공함으로서 웹사이트 운영자가 더욱 최적화된 웹사이트 개발에 기여함 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>01_setCookies.jsp</title> </head> <body> <% // 1. Cookie 객체 생성 Cookie c=new Cookie("id","hong123"); // 2. 쿠키의 유효기간 설정 c.setMaxAge(365*24*60*60); // 1년간의 쿠키 수명 유지 // 3. 클라이언트에 쿠키 전송 response.addCookie(c); // 4. new 쿠키를 생성하여 클라이언트에 바로 전송 response.addCookie(new Cookie("pwd","text1234")); response.addCookie(new Cookie("age","20")); %> <!-- pageContext, request, session,application 등은 서버에 존재하며 이용할 수 있는 저장소라면 쿠키는 클라이언트 쪽에 저장되는 저장소임 --> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>02_getCookies.jsp</title> </head> <body> <% Cookie[] cookies=request.getCookies(); // 쿠키내용 한번에 다 얻어오는 명령-쿠키객체 배열로 얻어옴 for(Cookie c:cookies){ out.println("<h2>"+c.getName()+" : "+c.getValue()+"</h2>"); } %> </body> </html>
01_setCookies.jsp 실행 창을 열어둔 채로 02_getCookies.jsp 실행한 결과 위를 진행한 후 02_getCookies.jsp만 실행한 결과. setMaxAge로 유효기간 설정한 id만 남음
session
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>03_Session.jsp</title> </head> <body> <% session.setAttribute("id","hong"); session.setAttribute("pwd","1234"); session.setAttribute("age",20); %> </body> </html>
1. 세션에 저장된 값 하나씩 추출
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>04_getSession.jsp</title> </head> <body> <h3>세션에 저장된 값 하나씩 추출</h3> <% String id=(String) session.getAttribute("id"); String pwd=(String) session.getAttribute("pwd"); Integer age=(Integer) session.getAttribute("age"); // Attribute에 저장되었던 모든 자료는 getAttribute로 꺼냈을 때 // Object형이므로 원래의 자료형으로 사용하기 위해서는 // (자료형) 같은 형변환이 필요함 %> id: <%=id %><br> pwd: <%=pwd %><br> age: <%=age %><br> </body> </html>
2. 세션에 설정된 모든 값 얻어오기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>04_getSession.jsp</title> </head> <body> <h3>세션에 설정된 모든 값 얻어오기</h3> <% java.util.Enumeration<String> names=session.getAttributeNames(); // 세션에 저장된 키값들만 얻어서 저장함 while(names.hasMoreElements()){ // nextElement를 String형 변수에 저장 String name=names.nextElement().toString(); // (String) 형변환을 사용하지 않고 형변환 메서드를 사용 // 얻어낸 키(name)값으로 세션에서 getAttribute로 value 값을 추출함 String value=session.getAttribute(name).toString(); // (String) 형변환을 사용하지 않고 형변환 메서드를 사용 out.println(name+" : "+value+"<br>"); } %> </body> </html>
03_Session.jsp 실행한 창 열어놓고 실행 3. 세션 정보를 얻어오는 메서드를 사용하기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>05_Session_Info.jsp</title> </head> <body> <h3>세션 정보를 얻어오는 메서드를 사용하기</h3> <% String id_str=session.getId(); // 현재 세션의 고유코드 얻음 long createdtime=session.getCreationTime(); // 생성시간: 밀리초 long lasttime=session.getLastAccessedTime(); // 마지막 접근 시간: 밀리초 // 사용시간(마지막 접근시간-생성시간): 밀리초 -> 1000으로 나누어 초단위로 long time_used=(lasttime-createdtime)/1000; session.setMaxInactiveInterval(3600); // 세션의 수명(단위: 초) int inactive=session.getMaxInactiveInterval()/60; // 수명을 분단위로 변환 boolean b_new=session.isNew(); // 새로 만든 세션의 여부 %> [1] 세션 ID는 [<%=id_str %>] 입니다.<br><hr> [2] 당신이 웹사이트에 머문 시간은 <%=time_used %>초입니다.<br><hr> [3] 세션의 유효 시간은 <%=inactive %>분입니다. <br><hr> [4] 세션이 새로 만들어졌나요?<br> <% if(b_new) out.print(" 예! 새로운 세션을 만들었습니다."); else out.print(" 아니오! 새로운 세션을 만들지 않았습니다."); %> </body> </html>
03_Session.jsp 실행한 창 열어놓고 실행
removeAttribute
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>06_RemoveAttribute.jsp</title> </head> <body> <% session.setAttribute("s_name1","저는 세션에 저장된 첫번재 값"); session.setAttribute("s_name2","저는 세션에 저장된 두번재 값"); session.setAttribute("s_name3","저는 세션에 저장된 세번재 값"); out.print("<h3> >>세션값을 삭제하기 전<< </h3>"); java.util.Enumeration<String> names=session.getAttributeNames(); while(names.hasMoreElements()){ String name=names.nextElement().toString(); String value=session.getAttribute(name).toString(); out.println(name+" : "+value+"<br>"); } // 이름을 지정하여 세선에 저장된 객체를 제거함 session.removeAttribute("s_name2"); out.print("<hr><h3> >>세션값을 삭제한 후<< </h3>"); names=session.getAttributeNames(); while(names.hasMoreElements()){ String name=names.nextElement().toString(); String value=session.getAttribute(name).toString(); out.println(name+" : "+value+"<br>"); } %> </body> </html>
'WEB > JSP' 카테고리의 다른 글
[JSP] bean (0) 2022.09.09 [JSP] session을 이용한 loginform (0) 2022.09.09 [JSP] servlet, action tag form (0) 2022.09.09 [JSP] login form, forward form, server object (0) 2022.09.09 [JSP] variable, import, request, include (0) 2022.09.09