학원/JSP
11/23 49-5 [JSP] Session(로그인/아웃)
도원결의
2022. 11. 23. 21:48
이거 파일이 모듈화를 해버린 파일이 남아있어서....
session의 주요 내용만 정리하자
어차피 메커니즘은 쿠키와 거의 동일하다!
세션도 저장위치만 다를 뿐 쿠키굽는거랑 다를게 없음
1.로그인 화면 !
<span class="font-weight-bold text-danger"><%=request.getAttribute("NOT-LOGIN")==null?"":request.getAttribute("NOT-LOGIN") %></span>
<form class="form-inline" action="LoginProcess.jsp" method="POST">
<label>아이디</label>
<input type="text" name="id" class="form-control mx-2" value="<%=request.getParameter("id")==null?"":request.getParameter("id") %>" />
<label>비밀번호</label>
<input type="password" name="pwd" class="form-control mx-2" value="<%=request.getParameter("pwd")==null?"":request.getParameter("pwd") %>" />
<input type="submit" class="btn btn-danger mx-2" value="로그인" />
</form>
2. 로그인 로직 처리하는 페이지 - 이번엔 세션으로 이용해서 코드작성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- LoginProcess.jsp -->
<%
//입력값 받기 => request객체 썼으니 포워드이동쓰겠지
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
//아이디 가정
if("KIM".equals(id.trim()) && "1234".equals(pwd.trim())){
//1.로그인 -세션이용
session.setAttribute("USER-ID",id);
//2.마이페이지로
response.sendRedirect("MyPage.jsp");
}
else{ // 리퀘스트 영역 필요
request.setAttribute("NOT-LOGIN","아이디/비번 불일치"); // 키값은 Login에서 가져왕
//로그인 포워드로 이동 ! 입력값들 request로 받았잖아! 그대로 전달 해줘야지!
request.getRequestDispatcher("Login.jsp").forward(request,response);
}
%>
3. 로그인 성공 시 Mypage로 !
위에 상단메뉴를 모듈화로 빼서
아 그거 중요한건데.. 그 코드만 가져와보면
<% if(session.getAttribute("USER-ID")== null){ %>
<a class="nav-link active" href="<%=request.getContextPath()%>/session06/Login.jsp">로그인</a>
<%} else{ %>
<a class="nav-link active" href="<%=request.getContextPath()%>/session06/Login.jsp">로그아웃</a>
<%} %>
</li>
로그인 했을 때는 로그아웃 버튼만 보이고
로그아웃 상태일 때는 로그인 버튼만 보이게 처리 !
<div class="container" style="margin-top:50px;">
<div class="jumbotron bg-warning">
<h1>마이페이지<small><%=session.getAttribute("USER-ID") %></small></h1>
</div>
<a class="btn btn-info" href="Logout.jsp">로그아웃</a>
</div>
4. 로그아웃 하기 !! 세션지우기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- Logout.jsp -->
<%
//로그아웃처리 -
session.invalidate();
//로그아웃 후
response.sendRedirect("Login.jsp");
%>
처음화면이랑 똑같다 !