Speed :1
New Score :0
High Score :0
New Score :0
High Score :0
Run Best
NICE BUSINESS TYPE INDICATOR
3. 급전을 친구에게 빌렸는데 오늘이 돈을 주기로 한날.. 그런데 카드값을 내야하는 날도 오늘인데... 이걸 어쩌나...
4. 우리 회사는 중요한 의사 결정을 할때?
5. 열심히 일한 나를 위한 선물을 주고싶다. 어떤게 좋을까?
6. 은행에서 투자상품을 추천받았다. 어떤걸 가입하지?
7. 회사에서의 나는?
8. 꿈에서 깨어나니 20년 전으로 돌아갔다. 당신이 제일 먼저 하는일은?
9. 내가 인사 담당자라면 신규 입사자 채용 시 제일 중요하게 보는것은?
10. 회사에 정말 싫어하는 동료가 있다면?
11. 가난한 집의 가장이 되었다.. 자녀의 생일 날 선물은?
12. 평소 회사 출근 스타일은?
13.회사 체육대회 하는 날이다. 오늘 뭐하지?
14. 나의 업무 스타일은?
클라이언트와 지속적인 연결을 유지하지 못하는 것이 http protocol의 특징이므로, 이전 요청한 클라이언트와의 연결을 유지하기 위해서 Session을 사용한다.
컨테이너(톰캣) 단에서 Session ID를 발행하고, 해당 Session ID와 Cookie를 맵핑 한 다음 해당 쿠키를 클라이언트에서 사용하도록 하면 클라이언트를 구분해서 받을 수 있다.
* 세션 ID는 다음과 같은 방법으로 사용할 수 있다.
HttpSession session = request.getSession();
위와 같이 하게 되면, request로부터 세션 ID를 가지고 올 수 있고, 제일 처음 요청이라면 response 객체에 보낼 쿠키도 생성하게 된다.
* 세션이 이미 있는지, 아니면 처음 요청으로 새롭게 만들게 되었는지를 확인하려면 다음과 같이 하면 된다.
HttpSession session = request.getSession();
if(session.isNew()) {
out.println("This is a new session");
} else {
out.println("Welcome back!");
}
if(session.isNew()) {
out.println("This is a new session");
} else {
out.println("Welcome back!");
}
* 클라이언트가 쿠키를 사용하지 않을 경우에는 세션 ID를 URL 뒤에 붙여 보내줘서 쿠키 대신에 URL을 파싱해서 클라이언트를 구분하기도 한다.
URL 뒤에 세션 아이디를 붙여 보내기 위해서는 다음과 같이 하면 된다.
HttpSession session = reqeust.getSession();
out.printl("<a href=\"" + response.encodeURL("/BeerTest.do") + "\">click me</a>");
out.printl("<a href=\"" + response.encodeURL("/BeerTest.do") + "\">click me</a>");
세션을 유지하면서 요청을 다른 서블릿이나 JSP로 보내고 싶은 경우에는 encodeRedirectURL()을 사용하면 된다.
* 오래된 세션은 세션 타임아웃을 web.xml에 설정하여 전체 세션에 적용해서 사용하거나, 메소드를 사용하여 특정 세션에서만 사용할 수 있다.
사용 방법은 다음과 같다.
web.xml에서 사용하는 방법
<session-config>
<session-timeout>15</session-timeout>
</session-config>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
특정 세션에서만 사용하는 방법
session.setMaxInactiveInterval(20*60);
session.setMaxInactiveInterval(20*60);
web.xml에서는 분 단위로 적을 수 있고, setMaxInactiveInterval의 인자값으로 사용할 경우에는 초 단위로 사용할 수 있다.
위의 경우에는 15분 또는 20분이라는 의미이다.
728x90
반응형