본문 바로가기

KOSTA : 클라우드 네이티브 애플리케이션 개발 전문가 양성과정

05/23 28일차 세션 활용

728x90

전날 Summary

- <form> 태그안에는 <form> 태그가 올 수 없습니다.

- <form> 태그안에서 method 접근 방식을 정할 수 있습니다.

- 지금은 서블릿 하나만 주소를 받고, 스프링에서는 메서드 마다 주소를 줄 수 있습니다.

- <input>태그 name 값이 서버가 받을 key값입니다. 해당하는 VO에 담습니다.

- 회원가입은 VO에 담았지만, 로그인은 id,pw만 확인하므로 VO를 사용하지 않습니다.

- 로그인 결과값들이 많아 VO에 집어넣어 리턴합니다.

 

세션 쿠키 Background

- HTTP 프로토콜은 클라이언트의 상태를 유지할 수 없는 stateless 프로토콜입니다.

- 웹상에서 클라이언트의 상태를 유지하기 위한 방법으로 Session, Cookie를 사용합니다.

 

HttpSession 메서드

 

 

*세션 지우는 방법

- 세션에서 지울때는 key를 이용하여 remove()를 이용합니다.

- invalidate()는 모든 세션을 다 지웁니다.

- 아니면 0초로 유지합니다

- web.xml에서 시간 설정을 합니다.

 

 

톰캣안에 프로젝트를 여러개 연결해놨다? 그러면 동시에 설정된다. 

그리고 각자 톰캣에 들어갑니다. 각 프로젝트 설정에 맞게 재빌드됩니다. 자기한테 설정된것이 최우선입니다.

그것이 더 우선시된다. 일괄적인건 톰캣에서 설정합니다. 

하나는 한국어, 하나는 일본어로 인코딩이 필요하다면 각 프로젝트에서 설정합니다.

 

<welcom-file-list>에서 웰컴 페이지 설정 가능합니다.

 

한글 코드 문제와 해결방법

- post로 보낼때 한글 깨짐 -> 프로그래밍시 인코딩 방식 설정

1. 응답헤더의 contentType 설정

2. 브라우저에서 서버로 오는 요청 파라미터에 대한 이코딩 설정

3. Servlet에서 response 객체 헤더 설정

 

- get으로 보낼때 한글 깨짐

 

세션이란?

- HTTP 한계를 극복할 수 있도록 웹사이트의 방문기록을 서버에 저장하여 사용자와 웹사이트 사이를 맥해해 주는 정보

- 웹프로그램 수행에 필요한 클라이언트 정보를 서버에 저장

- 쿠키보다 보아넹 유리함

- 서버에 저장된 정보 유효시간은 30분 : Default 1800

 

세션 동작 방식

 

-로그인 처리

모든 화면마다 로그인 처리를 확인해야 하나? 그럴 수 없다.

인크루드 문법을 통해 한번에 로그인 확인을 하려고 합니다.