728x90
728x90
http프로토콜은 통신이 유지가 되는 통신 방식이 아니다. 그래서 세션이 필요하다.
세션 : 서버에 저장되는 정보들. 장바구니 등. default는 30분. 메모리상에 만들어지는 객체 덩어리로 클라이언트별로 배정. 사용자가 접속하는 순간 웹서버에 클라이언트별로 세션이 만들어진다. 세션을 구분하는 값은 id. 세션 객체는 생명 주기가 있다. 가장 짧은 경우 은행 (3분 후 자동 로그아웃 등)
쿠키 : 개인 (클라이언트) PC에 저장된 정보들. 단점은 정보가 노출될 수 있다.
실습하기
session1.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"/>
</head>
<body>
<h1>Session Example1</h1>
<FORM METHOD="POST" ACTION="session2.jsp">
1.가장 좋아하는 계절은?<br>
<INPUT TYPE="radio" NAME="season" VALUE="봄">봄
<INPUT TYPE="radio" NAME="season" VALUE="여름">여름
<INPUT TYPE="radio" NAME="season" VALUE="가을">가을
<INPUT TYPE="radio" NAME="season" VALUE="겨울">겨울<p>
2.가장 좋아하는 과일은?<br>
<INPUT TYPE="radio" NAME="fruit" VALUE="watermelon">수박
<INPUT TYPE="radio" NAME="fruit" VALUE="melon">멜론
<INPUT TYPE="radio" NAME="fruit" VALUE="apple">사과
<INPUT TYPE="radio" NAME="fruit" VALUE="orange">오렌지<p>
<INPUT TYPE="submit" VALUE="결과보기">
</FORM>
</body>
</html>
session1.jsp
<%@page contentType="text/html; charset=EUC-KR" %>
<%
request.setCharacterEncoding("EUC-KR");
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
//DB연동 가정
boolean result= true;
if(result) {
session.setAttribute("idKey", id); //저장 (String,받은값)
session.setMaxInactiveInterval(60*3); //3분
}
String sessionId = session.getId();
%>
session ID : <%=sessionId%>
session2.jsp
<%@page contentType="text/html; charset=EUC-KR" %>
<%
request.setCharacterEncoding("EUC-KR");
String season = request.getParameter("season");
String fruit = request.getParameter("fruit");
//세션에 id를 가져온다.
String id = (String)session.getAttribute("idKey");
String sessionId = session.getId();
int intervalTime = session.getMaxInactiveInterval();
if(id!=null) {
%>
<%=id%>님이 좋아하는 계절과 과일은
<%=season + "/" + fruit%><br/>
세션ID : <%=sessionId%><br/>
세션유지시간: <%=intervalTime%> <br/>
<% }else {
out.print("세션의 시간이 경과를 하였거나 다른 이유로 연결을 할수 없습니다. ");
}
%>
728x90
728x90
'SQL > MySQL' 카테고리의 다른 글
mysql (2) 간단한 CLUD 실습 (0) | 2019.07.08 |
---|---|
mysql (1) 설치 및 이클립스 환경 구축 (0) | 2019.07.08 |