JSP웹프로그래밍-Hard Carry 연습문제07
Chapter07 쿠키
- 다음 글을 읽고 빈 괄호에 들어갈 단어를 입력하시오.
1) 쿠키는 ( 클라이언트 )와 ( 웹서버 )간의 상태를 지속적으로 유지하기 위해 사이트에 접속할때 생성되는 정보를 담은 4KB이하의 크기의 임시 파일을 의미합니다.
2) response 내장 객체는 JSP 웹페이지의( 실행결과 )를 웹 브라우저로 반환해 줄때 사용하는 객체이며 서버는 클라이언트에 대한 ( 응답 )을 response객체를 통해 처리합니다.
3) 클라이언트가 새로운 ( 웹페이지 )를 요청할 때 서버는( 웹 브라우저 )에서 다른 페이지로 강제 이동할 수 있도록 response내장 객체의 sendRedirect() 메소드를 사용합니다.
2. 쿠키와 세션의 차이점을 3가지 이상을 기술하시오.
1) 세션은 로그인 상태 정보를 웹 서버에 객체 상태로 저장되는 반면 쿠키는 불순한 의도로 복사되거나 해킹 등에 의해 개인 정보가 탈취될 수 있다는 보안상의 취약한 단점 또한 존재한다.
2) 쿠키는 서버의 자원을 전혀 사용하지 않지만 세션은 서버의 자원을 사용한다.
3) 웹 서비스에 대한 요청 속도는 세션보다 쿠키가 더 빠르다.
3. 다음 표에서 주어진 메소드 선언에 대한 의미를 기술하시오.
메소드선언
|
의미
|
new Cookie(String)
|
쿠키를 생성합니다.
|
String getCookies()
|
쿠키에 대한 정보를 가져옵니다.
|
String getName()
|
쿠키의 이름을 가져옵니다.
|
String getValue()
|
쿠키에 설정된 값을 가져옵니다.
|
void setMaxAge(int)
|
쿠키의 유효시간을 설정합니다.
|
4. 폼화면에서 로그인을 성공적으로 접속하였을 경우만 쿠키가 생성되도록 JSP애플리케이션을 생성하시오.
1) 프로젝트명 : JSPStudy
2) 로그인 폼 화면 : test07_04_01.jsp
- 아이디 : consmos
- 비밀번호 : 888888
3) 쿠키 생성 파일 : test07_04_02.jsp
4) 기타
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test07_04_01.jsp</title>
</head>
<body>
Home > 로그인 폼 화면
<hr>
<form name="loginform" method="post">
<fieldset style="width:280px">
<legend>아이디로 로그인</legend><p>
아이디 : <br>
<input type="text" name="id"><br><br>
비밀번호 : <br>
<input type="password" name="passwd"><br><br>
<input type="submit" value=">>로그인>>">
</fieldset>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
Home > 쿠키 생성 및 로그인 성공
<hr>
<%
request.setCharacterEncoding("utf-8");
String u_id = request.getParameter("id");
String u_pw = request.getParameter("passwd");
if(u_id.equals("cosmos") && u_pw.equals("88888")){
Cookie cooks_id = new Cookie("userID", "u_id");
Cookie cooks_pw = new Cookie("userPW", "u_pw");
out.println("쿠키를 생성하였습니다.<br>");
out.println("["+ u_id + "]님이 입장하였습니다.<br><br>");
}else{
out.println("실패");
}
%>
<form name="login" action="test07_04_01.jsp" method="post">
<input type="submit" value="로그인하기">
</form>
</body>
</html>


5. 쿠키 생성 후 화면에서 <로그아웃>을 클릭하게 되면 쿠키를 삭제하고 쿠키의 정보가 출력되도록 JSP애플리케이션을 생성하시오.
1) 프로젝트명 : JSPStudy
2) 쿠키 생성 : 4번 연습문제 수행
3) 쿠키 삭제 : test07_05_01.jsp
4) 삭제 후 쿠기 정보 출력 : test07_05_02.jsp
5) 기타
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test07_05_01.jsp</title>
</head>
<body>
Home > 쿠키 객체 정보 확인하기
<hr>
<%
Cookie[] cookies = request.getCookies();
out.println(">> 쿠키의 개수 : " + cookies.length + "<br>");
out.println("<hr>");
for(int count=0; count < cookies.length; count++){
out.println("[" + count + "] 쿠키의 이름 : ");
out.println(cookies[count].getName() + "<br>");
out.println("[" + count + "] 쿠키의 값 : ");
out.println(cookies[count].getValue() + "<br>");
out.println("<hr>");
}
%>
</body>
</html>
<%@page import="java.net.CookieStore"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test07_05_02.jsp</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
for(int count = 0; count < cookies.length; count++){
cookies[count].setMaxAge(0);
response.addCookie(cookies[count]);
}
response.sendRedirect("test07_05_01.jsp");
%>
</body>
</html>

