JSP

221130 session실습

주영재 2022. 11. 30. 19:30

session_login

<%@ 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>
	
	<h2>세션 로그인 연습</h2>
	
	<form action="session_login_ok.jsp" method="post">
	
		아이디:<input type="text" name="id"><br>
		비밀번호:<input type="password" name="pw"><br>
		닉네임:<input type="text" name="nick"><br>
		
		<input type="submit"  value="로그인">
	</form>
	
	
</body>
</html>

 

 

session_login_ok

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	/*
	1. 아이디, 비밀번호, nick을 받습니다.
	2. 아이디 비밀번호가 동일하면 로그인 성공이라고 간주하고 (user_id, id)의 세션생성
	(user_nick, 닉네임)을 세션을 생성
	
	session_welcome로 이동해서 화면에 "id님 환영합니다"를 출력합니다.
	틀린경우는 로그인페이지로 리다이렉트 처리해주세요.
	
	session_welcome페이지에서는 a태그를 이용해서 session_logout을 만들고, 
	세션을 무효화한 이후에 로그인 페이지로 리다이렉트 시키면 됩니다
	
	*/
	request.setCharacterEncoding("utf-8");
	
	String id = request.getParameter("id");
	String pw = request.getParameter("pw");
	String nick = request.getParameter("nick");
	
	if(id.equals(pw)){
		session.setAttribute("user_id", id);	
		session.setAttribute("user_nick", nick);	
		response.sendRedirect("session_welcome.jsp");
	}else{
		response.sendRedirect("session_login.jsp");
	}

%>

값을 request.getParameter로 받아와서 

로그인에 성공했을 때 session을  setAttribute로생성

 

session_login_welcome

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String user_id=(String)session.getAttribute("user_id");
	String user_nick=(String)session.getAttribute("user_nick");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>"<%=user_id%>님 환영합니다"</p>
	<a href="session_logout.jsp">로그아웃</a>
</body>
</html>

생성된 session을 getAttribute로 받아와서 저장. session으로 받아온 value는 object타입이라서 형변환이 필요함

 

session_logout

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	session.invalidate();
	response.sendRedirect("session_login.jsp");

%>

response.sendRedirect로 연결되어 있으니 생성된 session은 존재함. 

따라서 session.invalidate로 전부 지워버리는것이 가능