본문 바로가기
Web Programming/JAVA

로그인,로그아웃 Session & 로그인 버튼 → 로그아웃 버튼

by hyeon-H 2021. 6. 14.
728x90
반응형

홈페이지 로그인 부분

홈페이지에서 로그인을 하게 되면 로그인버튼은 사라지고 로그아웃과 같은 회원에게만 노출 되는 버튼이 등장하게 만들어야한다. 
로그인을 하면 페이지를 이동할때마다 로그인을 다시 하는 번거로움도 없어야한다.
그래서 Session을 사용한다.

로그인 전
로그인 후



Session?

사용자(브라우저)로 부터 들어온 데이터를 서버에 연결해 여러 페이지에서 일정하게 유지하는 기술이다.
즉 사용자(클라이언트)와 서버 간의 상태를 유지시켜 주는 방법이다.

 

JSP | Session

Session 클라이언트에 세션 ID를 부여해서 클라이언트를 구분하는 방법 Session 개요 클라이언트와 서버 간 상태를 유지하는 방법 중 하나 클라이언트가 처음 접속했을 때 세션 ID를 부여하고 서버에

pathas.tistory.com


 

Controller에서 Session 사용

else if(str.equals("/memberLoginAction.do")) {

//1. 로그인을 시도하는 아이디와 비밀번호를 가져온다.
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");

//2. 로그인 메소드를 호출한다.
MemberDao md = new MemberDao();
int midx = md.memberLogincheck(id, pwd);

PrintWriter out = response.getWriter();
if(midx > 0) {
  //로그인 성공시
  //세션을 생성한다.
  HttpSession session = request.getSession();
  //세션에 로그인된 회원의 고유번호 세팅한다.
  session.setAttribute("midx", midx);
  out.println("<script>alert('로그인');document.location.href='로그인성공이동경로';</script>");
}else {
  //로그인 실패시
  out.println("<script>alert('로그인 실패');document.location.href='로그인실패이동경로';</script>");
}

 

JSP에서 Session 가져오기

...
<%
int midx = 0;

//Session을 받을때는 값이 null로 올때를 생각해서 조건문을 사용한다.
if (session.getAttribute("midx") != null) {
  //세션의 값을 가져오기
  midx = (int)session.getAttribute("midx");
}
%>

<!doctype html>
<html>
...

 

JSP에서 Session을 사용해 버튼 만들기

<!--로그인 전 화면  -->
<%if (midx == 0) {%>
  <ul>
    <li><a href="#">회원가입</a></li>
    <li><a href="#">로그인</a></li>
  </ul>

<!--로그인 후 화면  -->
<%} else if (midx > 0) {%>
  <ul>
    <li><a href="#">Mypage</a></li>
    <li><a href="#">계정설정</a></li>
    <li><a href="#">로그아웃</a></li>
  </ul>
<%};%>

 

Session을 사용해 Controller에서 로그아웃

/* 로그아웃 실행 */
HttpSession session = request.getSession();
 // 모든세션정보 삭제
session.invalidate();

PrintWriter out = response.getWriter();
out.println("<script>document.location.href='로그아웃시이동경로';</script>");

 

 

 

728x90
반응형