일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 관계형 데이터베이스
- 기초프로그래밍
- exception
- w3schools
- CS 기초지식
- Java Programming
- 상속
- java
- Compute Science
- 데이터베이스 모델링
- CS기초지식
- til
- ssafy
- Computer Science
- edwith
- 알고리즘
- 예외처리
- WebProgramming
- 모두를 위한 컴퓨터 과학(CS50)
- 면접을 위한 CS 전공지식 노트
- 이진법
- SSAFY 9기
- CS50
- SW
- 객체지향
- ERD
- CS 기초
- 부스트코스
- 삼성청년SW아카데미
- 모두를 위한 컴퓨터 과학
- Today
- Total
Joslynn의 하루
MSA Full-Stack 개발자 양성 과정 - JSP 내장객체 session, application / Java AtomicInteger_221004 본문
MSA Full-Stack 개발자 양성 과정 - JSP 내장객체 session, application / Java AtomicInteger_221004
Joslynn 2022. 10. 4. 15:29JSP 내장 객체
- session
: HttpSession
: 클라이언트의 정보를 서버측에 저장할때 사용함.
: 저장된 정보는 브라우져 창이 시작 해서 종료할때까지 저장정보가 유지됨.
(일반적으로 로그인 ~ 로그아웃 )
: 접속된 각각의 클라이언트마다 생성됨.
: 기본 세션의 시간은 30분(1800초)
* session.setAttribute(String name, Object value);
: 세션의 정보를 저장.
* Object value = session.getAttribute(String name);
: 세션의정보가져오기
* session.setMaxInactiveInterval(int interval);
: 세션의 유지되는 시간설정(초단위)
* int interval = session.getMaxInactiveInterval();
: 설정된 세션의 시간 가져옴(초단위)
* String id = session.getId();
: 세션이 생성되면 자동으로 만들어지는 세션아이디
* Enumeration e =session.getAttributeNames();
: 세션에저장된 name 가져오기
* boolean b = session.isNew();
: 현재 브라우져창의 세션이 새로운것인지 판별
(true면 새로운페이지, false 기존페이지)
* session.invalidate();
: 세션의 모든정보를 지운다.
* session.removeAttribute(java.lang.String name);
: 저장된 세션의 정보중 name에 해당하는 정보 삭제
* long time = session.getLastAccessedTime();
: 마지막 접속시간
* long time = session.getCreationTime();
: 세션이 시작된 시간.
- application
: ServletContext
: 특정 정보를 서버가 시작해서 종료될때까지 유지되도록 함.
서버에 대한 정보를 추출과 웹 어플리케이션단위로 상태정보저장
: 도메인에 접속한 서버들이 공유하는 영역
* application.setAttribute(String name, Object value);
: 정보를 저장하는 기능
* Object value = application.getAttribute(String name);
: name에 해당하는 정보를 가져오는 기능
* application.removeAttribute(String name);
: name에 해당하는 정보를 삭제하는 기능
* application.getRealPath(java.lang.String path);
: 실행되는 문서의 경로 가져오는 기능
* Enumeration e = application.getAttributeNames();
: 저장된 정보의 name 가져오는 기능
**AtomicInteger 클래스
: thread-safe로 구현되어 멀티쓰레드에서 synchronized 없이 사용
: synchronized보다 경제적임
: int 자료형을 갖고 있는 Wrapping 클래스
: new AtomicInteger() 생성: 초기값 0으로 AtomicInteger
**추가 자료
application 예제) 방문자 수 count - server가 꺼지면 새로 시작
<%@page import="java.util.concurrent.atomic.AtomicInteger"%>
<%@ 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>
<%
//1.기존 count 값을 읽어온다.
Object obj = application.getAttribute("count");
if (obj == null) {
application.setAttribute("count", new AtomicInteger()); // AtomicInteger => initial value == 0
obj = application.getAttribute("count");
}
AtomicInteger at = (AtomicInteger)obj;
int count = at.intValue(); // 기존값
if (session.isNew()) {
count = at.incrementAndGet(); //증가 & 값 얻어오기
//application.setAttribute("count", count); 다시 저장할 필요 X, 이미 객체 안에 정보로 저장
}
%>
<h3>
방문자 수 : <%=count%>명
</h3>
</body>
</html>
- cookie
: javax.servlet.http.Cookie
: 클라이언트의 정보를 클라이언트 PC에 저장함.
: 사용자 측에 대한 정보를 보관해 두었다가 웹서버의 요청에 의해 그 정보를 원하는 순간에 사용할 수 있다.
: 한번에 4KB 로 용량이 제한되고 300개까지 저장 가능함. (최대용량 : 4KB * 300 = 1.2MB)
: 작은정보의 형태로 저장되고 오래되면 자동삭제됨.
* response.addCookie(new Cookie(name, value));
: 클라이언트쪽에 클라이언트 의 정보를 저장함.
* Cookie co [] = request.getCookies();
: 접속한 클라이언트에 저장된 쿠키정보(클라이언트정보) 가져오기
* Cookie 관련 메소드 정리
int getMaxAge() : 쿠키의 사용할수 있는 기간에 대한 정보
setMaxAge(int max) : 쿠키가 저장되는 기간 설정
ex) setMaxAge(0) ; : 쿠키삭제
setMaxAge(-1) ;
: 쿠키폴더에 파일이 만들어지지 않지만 브라우져가 종료될까지
쿠키의 정보는 저장된 상태이고 브라우져를 닫으면 쿠키정보 사라짐.
(setMaxAge를 생략하면 -1을 기본)
setMaxAge(60*60*24*365)=> 1년
setValue(Cookie c) : 쿠키정보 수정하기
: 쿠키의 정보가 수정되면 setMaxAge도 수정해야만 정보의 유효기간이 설정됨.
String getName(); : 쿠키설정된 이름 가져오기
String getValue(); : 쿠키에 설정된 값 가져오기
setPath(String path) : 쿠키의 유효한 디렉토리 설정
ex)setPath("/") : 모든 문서(디렉토리)에서 쿠키사용가능함.
* Cookie 생성자
Cookie(String name, String value);
ex) Cookie cookie = new Cookie("id","8253jang"); // 한글 저장 불가
* win7의 쿠키 폴더 : C:\Users\"UserName"\AppData\Roaming\Microsoft\Windows\Cookies
**참고 자료 - Web Server와 Web Application Server
'MSA Full-Stack 개발자 양성과정 > JSP&Servlet' 카테고리의 다른 글
[Servlet] annotation과 xml 설정 (0) | 2022.10.11 |
---|---|
MSA Full-Stack 개발자 양성 과정 - JSP 표현언어(EL)&JSTL_221006 (0) | 2022.10.06 |
MSA Full-Stack 개발자 양성 과정 - JSP 예외 처리, Servlet 기초_221005 (1) | 2022.10.05 |
MSA Full-Stack 개발자 양성 과정 - JSP 페이지 이동방식, 내장객체 request, response_220930 (0) | 2022.09.30 |
MSA Full-Stack 개발자 양성 과정 - JSP_220929 (0) | 2022.09.29 |