jsp
2022_11_30 Session Login Practice (세션 로그인 연습)
0304호
2022. 11. 30. 18:53
세션(Session)
쿠키와 비슷하게 관계를 유지하기 위한 수단
하지만 클라에 있는게 아니라 서버에 객체형태로 존재함
서버당 하나의 세션 객체를 가지고 있음(브라우저별)
브라우저를 종료하면 삭제됨
서버에서만 접근가능(보안이 좋음) 데이터의 한계x
세션 만료는 기본 30분
세션은 서버와 정보를 유지하기 위해 사용하는 내장객체다
setAttribute("이름", 값)으로 저장한다
<%@ 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
-> request로 받은 값을 확인후 아이디와 비밀번호가 맞다면 session_welcome으로 틀렸다면 session_login으로 돌아감
<%@ 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("admin") && pw.equals("1234")){
session.setAttribute("user_id", id);
session.setAttribute("user_nick", nick);
response.sendRedirect("session_welcome.jsp");
}else{
//다시 돌아가기
response.sendRedirect("session_login.jsp");
}
%>
Session_welcome
-> 세션값을 불러와서 환영메세지 출력
-> session-logout이라는 링크를 클릭하면 이동하게 만듬
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String id = (String)session.getAttribute("user_id");
String nick = (String)session.getAttribute("user_nick");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=nick %>(<%=id %>)님 환영합니다.
<a href = "session_logout.jsp">session_logout </a>
</body>
</html>
Session_logout
-> session.invalidate()를 통한 세션값 삭제
-> 강제 페이지 이동으로 session_login으로 이동
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.invalidate();
response.sendRedirect("session_login.jsp");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>