AR삽질러

JSP웹프로그래밍-Hard Carry 연습문제06 본문

JAVA/JSP

JSP웹프로그래밍-Hard Carry 연습문제06

아랑팡팡 2023. 1. 17. 20:58
728x90

Chapter06 Session

  1. 다음 글을 읽고 빈 괄호에 들어갈 단어를 입력하시오.

01 세션은 웹 서버 공간에 생성되는 ( 객체 )로 웹 브라우저마다 하나씩 존재하며 웹서버와의 접속을 통해 생성된 세션은 네트워크 환경에서 여러 사용자 중 특정인에 대한 ( 구분자 )의 역할을 수행합니다.

02 세션을 통해 접속된 웹 브라우저를 닫기 전까지는 웹페이지를 이동하더라도 사용자에 대한 정보가 ( 웹서버 )에 객체 상태로 저장되어 있으므로 ( 사용자 정보 )를 지속적으로 활용할 수 있게 됩니다.

03 session 내장 객체는 웹 브라우저에서 ( 웹서버 )에게 서비스를 요청할 경우 요청한 웹 브라우저에 관한 ( 정보 )를 저장하고 관리하는 역할을 수행합니다.

2. 다음과 같이 주어진 session내장 객체의 메소드를 보고 의미를 기술하시오.

메소드 선언
의미
session.setAttribute(String name, Object value)
세션을 생성합니다.
session.getAttribute(String name)
01 세션의 name에 해당하는 정보를 가져옵니다.
session.setMaxInactiveInterval(int interval)
세션이 유지되는 시간을 초 단위로 설정합니다.
int interval:session.getMaxInactiveInterval()
설정된 세션의 시간을 초 단위로 가져옵니다.
session.invalidata()
02 세션의 모든 속성값을 지웁니다.
session.removeAttribute(java.lang.String name)
저장된 세션의 속성 중 name에 해당하는 정보를 삭제합니다.
long time = session.getLastAccessedTime()
03 마지막 접속 시간을 알려줍니다.
long time = sessiongetCreationTime()
세션이 시작된 시간을 알려줍니다.

3. 세션을 삭제할 때 사용하는 메소드를 기술하시오.

1) 단일 세션 삭제 - Object get Attribute(String name)

2) 다중 세션 삭제 - <%@ page import="java.util.Enumeration" %>

Enumeration en = getAttributeNames();

4. 폼 화면에서 로그인을 성공적으로 접속했을 겨우만 세션이 생성되도록 JSP애플리케이션을 생성하시오.

1) 프로젝트명 : JSPStudy

2) 로그인 폼 화면 : test06_04_01.jsp

- 아이디 : 김태리

- 비밀번호 : 123456

3) 세션 생성 파일 : test06_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>test06_04_01</title>
</head>
<body>
	Home > 로그인 폼 화면
	<hr>
	<form name="loginForm" action="test06_04_02.jsp" method="post">
		아이디 : <br>
		<input type="text" name="id"><br><br>
		비밀번호 : <br>
		<input type="password" name="passwd"><br><br>
		<input type="submit" value="Login">&nbsp;&nbsp;
		<input type="reset" value="Cancle">
	</form>
</body>
</html>

 
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test06_04_02</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("김태린") && u_pw.equals("1234"))
		{
			session.setAttribute("memberId", u_id);
			session.setAttribute("memberPw", u_pw);
			
			out.println("[ " + u_id + "] 님이 입장하였습니다.<br><hr>" );
		
	%>
		<form name="Logout" action="test06_04_05.jsp" method="post" target="_blank">
			<input type="submit" value="Logout">
		</form>
		
	<%
		}
		else
		{
			out.println("세션 생성 실패 ! <br>");
			out.println("다시 시도!!");
		}
	%>
</body>
</html>

5. 로그인 접속 완료 화면에서 <Logout>를 누르게 되면 생성된 세션의 모든 속성이 삭제 되도록 JSP애플리케이션을 생성하시오.

1) 프로젝트명 : JSPStudy

2) 파일생성 : test06_05.jsp

3) 모든 세션 삭제 : session.invalidate()

4) 새 창에서 실행 : 폼 태그 안에 target="_blank"선언

5) 기타

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test06_05.jsp</title>
</head>
<body>
	Home > 세션 삭제 후 로그 아웃
	<hr>
	<%
		long s_time = session.getCreationTime();
		long l_time = session.getLastAccessedTime();
		
		out.println("* 로그인 접속 시간 : " + (l_time - s_time) / 6000 + "분 <hr>");
		out.println("~ 로그아웃 하였습니다. ~");
	%>
	<hr>
</body>
</html>
728x90
반응형
LIST