일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- DART
- Python
- 건담
- Web
- 건담베이스
- 디지몬
- メソッド
- vscode
- 자바
- 인프런
- 一日一つメソッド
- javascript
- Flutter
- html
- 日本語
- springboot
- CSS
- 비즈니스일본어
- ruby
- jsp
- 반다이몰
- java
- rails7
- 単語
- C로 시작하는 컴퓨터 프로그래밍4판
- nico
- 연습문제
- rails
- 일본어
- Spring
Archives
- Today
- Total
AR삽질러
Session 본문
728x90
https://arang95.tistory.com/65
1. JSP(JavaServerPages)에서 Cookie와 Session의 공통점은 둘다 클라이언트와 서버간의 데이터를 전송하고 유지하는 방법이다.
2. Cookie와 Session의 차이점
Cookie | Session | |
저장위치 | 클라이언트 측에 저장 | 서버측에 저장 |
저장 데이터 | 문자열 값만 저장 | 객체를 저장 |
보안성 | 클라이언트 측에 저장되어 유출될 경우 보안상의 위험이 존재 | 서버 측에 저장되기 때문에 쿠키에 비해 안전하다. |
유효기간 | 만료기간을 설정할 수 있다. | 브라우저를 종료하면 삭제된다. |
사용용도 | 로그인 정보 등을 저장하기 위해 사용된다. | 사용자의 상태를 유지하기 위해 사용된다. |
사용방법 | HTTP응답 헤더에 Set-Cookie를 사용하여 설정하고 HTTP요청 헤더에서 Cookie를 사용하여 읽을 수 있다. | JSP내장 객체 HttpSession을 사용하여 설정하고 읽을 수 있다. |
3. Session의 주요 내장객체
- 가장 주요한 Session 내장 객체는 HttpSession
- HttpSession 객체는 사용자별로 생성되고 서버 측에 사용자 정보를 저장한다.
- getSession(): 현재 세션을 반환하거나, 새로운 세션을 생성
- setAttribute(String name, Object value): 지정된 이름으로 객체를 세션에 저장
- getAttribute(String name): 세션에서 지정된 이름으로 저장된 객체를 반환
- removeAttribute(String name): 세션에서 지정된 이름으로 저장된 객체를 제거
- invalidate(): 현재 세션을 무효화하여 세션과 관련된 모든 객체를 삭제
4. Session 예제
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page session = "true" %>
<%@ page import = "java.util.Date" %>
<%@ page import = "java.text.SimpleDateFormat" %>
<%
Date time = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Info</title>
</head>
<body>
<h1>세션정보</h1>
<HR>
Session ID : <%=session.getId() %><br>
<%
time.setTime(session.getCreationTime());
%>
세션생성시간 : <%=formatter.format(time) %><br>
<%
time.setTime(session.getLastAccessedTime());
%>
최근접근시간 : <%=formatter.format(time) %>
</body>
</html>
5. Session의 속성 사용
- 한번 생성된 세션은 종료전까지 지속적으로 유지된다. setAttribute(), getAttribute() 메소드를 사용하여 속성정보를 저장하고 불러올 수 있다.
Session 정보 저장하기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page contentType="text/html; charset=UTF-8" %>
<%
session.setAttribute("STUDENT", "AR");
session.setAttribute("NAME", "AR삽질러");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Save</title>
</head>
<body>
<h1>Session Info Save</h1>
<HR>
세션에 정보를 저장하였습니다.
</body>
</html>
Session 정보 불러오기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String Studentid = (String)session.getAttribute("STUDENT");
String name = (String)session.getAttribute("NAME");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Info GET</title>
</head>
<body>
<h1>세션 정보 로드</h1>
<HR>
StudentID : <%=Studentid %><br>
Name : <%=name %>
</body>
</html>
6. Session종료
- 웹 애플리케이션에서 세션(session)은 클라이언트와 서버 간의 상태 정보를 유지하기 위한 메커니즘으로 세션은 일정 기간동안 클라이언트와 서버 간의 연결을 유지하며 세션에 저장된 데이터는 클라이언트의 요청에 따라 서버에서 처리되어 응답으로 전송됩니다.
세션의 종료는 방법
1. 타임아웃 : 타임아웃시간을 설정
<session-config>
<session-timeout>5</session-timeout> // 타임아웃시간을 5분으로 설정
</session-config>
2. setMaxInactiveInterval()메소드를 이용한 타임아웃 설정방법
<%
session.setMaxInactiveInterval(5 * 60); // 초단위로 설정
%>
ex)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.invalidate();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Time Out</title>
</head>
<body>
<h1>Session Time Out</h1>
<HR>
</body>
</html>
728x90
반응형
LIST
'JAVA > JSP' 카테고리의 다른 글
JSP - 파일업로드(자카르타API) (0) | 2023.03.10 |
---|---|
JSP - 파일업로드 (0) | 2023.03.10 |
Cookie (0) | 2023.03.10 |
JSP 개인프로젝트(12) - 게시판만들기(댓글관리) (0) | 2023.03.09 |
JSP 개인프로젝트(11) - 게시판만들기(페이징처리) (0) | 2023.03.07 |