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 |
댓글