본문 바로가기
Spring Framework/jsp 웹

jsp 웹 프로그래밍 / 세션 , 쿠키

by 자유코딩 2017. 11. 27.

jsp 웹 프로그래밍 / 세션 , 쿠키

 

세션과 쿠키의 등장 배경

http 프로토콜은 비연결형 프로토콜이다.

그래서 사용자의 연결을 계속 유지하지 않는 방식으로 출력이 처리된다.

사용자의 요청에 대한 응답을 한 후 연결을 해제한다.

 

예를 들어 한 번 로그인한 사용자가 로그아웃 할 때까지 보관해야할 정보가 있다면 곤란하다.

이런 http프로토콜의 문제점을 해결하기 위해서 세션쿠키라는 개념이 등장했다.

 

세션 :

 

서버에 정보를 저장하는 방식

 

쿠키 : 정보를 클라이언트의 pc에 저장하는 방식

 

세션

쿠키의 단점

PC에 정보가 보관되기 때문에 보안에 취약하다(개인정보 유출)

작은 크기의 데이터만 저장가능

 

세션의 장점

JSP(서버 사이드)에서만 접근이 가능하므로 보안이 유지된다

저장 할 수 있는 데이터에 한계가 없다

 

<a href ="getCookie.jsp">쿠키 목록확인</a>

글씨에 링크 만들어서 해당 페이지로 이동시키는 html 태그

 

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
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=request.getParameter("id"%> 님이 로그인하셨습니다.
<form action = "addProduct.jsp">
    <select name = "fruit" size = "5" multiple = "multiple">
        <option value = "사과">사과</option>
        <option value = "배"></option>
        <option value = "파인애플">파인애플</option>
        <option value = "복숭아">복숭아</option>
    </select>
    <input type = "submit" value ="추가">
</form>
 
<form action = "selProduct.jsp">
<input type = "submit" value = "장바구니">
</form>
</body>
</html>
cs

 

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
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 
 
<script type="text/javascript">
alert("<%=request.getParameter("fruit")%>를 추가했습니다.");
<
String fruit = request.getParameter("fruit"); 
session.setAttribute("fruit",fruit);
 
String fruitName = request.getParameter("fruit");
ArrayList<String> values  = (ArrayList<String>)session.getAttribute("productList");
if(values == null){
    values = new ArrayList<String>();
}
values.add(fruitName);
session.setAttribute("productList", values);
%>
history.go(-1);
</script>
</body>
</html>
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action = "add.jsp">
    <input type = "text" name="id">
    <input type = "submit" value = "로그인">
</form>
</body>
</html>
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
ArrayList<String> values  = (ArrayList<String>)session.getAttribute("productList");
for(int i =0;i<values.size();i++){
    out.println(values.get(i));
}
%>
</body>
</html>
cs

 

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
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>      
</head>
<body>
<!-- 세션
    브라우저당 한개씩 존재
    웹 브라우저를 닫기 전까지 페이지를 이동하더라도
    사용자의 정보를 잃지 않고 서버에 보관하게 해준다
    session 내장객체를 이용
 -->
 <%
     if(session.isNew()){//session이 있는지 없는지 확인하는 메소드
         String id = "hong";
         session.setAttribute("id",id);//세션에 정보 저장
     }
 %>
 <%=session.getAttribute("id"%>님 환영합니다.<br>
 <!--세션의 정보를 가져오기-->
 세션 ID = <%=session.getId() %><br>
세션 유지 시간 = <%=session.getMaxInactiveInterval()%><br>
세션 유지 기간 지정 <%
/*session.setMaxInactiveInterval()*/%>
세션 삭제 메소드<%=session.invalidate() %>
</body>
</html>
cs

 

'Spring Framework > jsp 웹' 카테고리의 다른 글

JSP Servlet 5  (0) 2017.12.25
JSP Servlet 4  (0) 2017.12.24
JSP Servlet 2  (0) 2017.12.24
JSP Servlet 1  (0) 2017.12.24
jsp 라디오 버튼 , 체크 박스 , 텍스트 / radio button , checkbox , textarea  (0) 2017.11.22

댓글