Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/7월

22.07.27 - [ WAS ] 로그아웃 구현 , 알람 메시지 띄우기

giggs 2022. 8. 4. 09:48

 

 

-- Index --

 

 

1. 로그아웃 부분 구현 2. 알람 메시지 띄우기
서버요청-요청처리(세션만료)-인덱스페이지로 이동 메시지일치하면 세션만료 - 메시지 알람 - null이면 메시지 X

 

 

 

 


 

 

 

 

1. 로그아웃 부분 구현하기

 

 

1-1. 서버에 로그아웃 요청 보내기

  • index.jsp에 로그아웃 링크 누르면 서버에 /user/logout  요청하도록 해주기
  • < a href = "/webPrj14/user/logout>

 

 

 


 

1-2. 로그아웃 요청 처리할 서블릿 만들기

  • /user/logout 요청 처리할 서블릿 만들기
  • a태그로 넘어오는 것은 get방식으로 요청하는 것이다. 
  • doGet() 메서드로 작성하기

 


 

1-3. 로그아웃 처리 = 세션 만료 시켜주기

  • req.getSession().invalidate();
  • ( 원래 여기서 세션 만료시켜주는 것은 아니다. )

 


 

1-4.  로그아웃 잘되면 index 화면 보여주도록 해주기

  • req.sendRedirect(req.getContextPath());

 


 

 

1-요청처리 서블릿 / 2-세션만료 / 3-메인페이지로보내기

 


 

 

+@ Cehck

  • java에서 session 얻어오는 정석 방법도 체크
  • HttpSession session = req.getSession();

 

 

 

 

 

 

 

 


 

 

 

 

2. 알람 메시지 띄워주기

 

 

로그아웃 완료 후 index화면으로 돌아갔을 때 알람 띄워서 알려주기

 

 

2-1. session에 담아주기 

  • session.setAttribute("key", "메시지")

 


 

2-2. redirect 요청으로 index화면으로 이동하기 

  • index.jsp 파일에서 작업

 

 

 


 

3. session에 담아놓은 메시지 key값을 이용해서 꺼내기

  • session.getAttribute("key")
  • index.jsp 파일에서 작업 - 

 

 

 


 

4. 알람으로 띄워주기 

  • <script> 태그 활용

 

 

 


 

 

2-5. 문제점 발생 - 메시지가 null로 나온다.

  • 세션 만료되는 위치 수정 
  • index페이지로 넘어오기 전 로그아웃 쪽에서 세션 만료가 되어버렸다.
  • 만료된 세션에서 저장된 메시지 꺼내서 보내려 하니 에러 발생
  • 로그아웃 쪽이 아닌 전달받은 index 쪽에서 session 만료되도록 수정.

 

 

jsp 내장객체 session 활용

 


 

2-6. 추가 문제점 발생  – 알람메시지 반복 , 세션 만료

  • 1. 새로고침 하면 알람메시지 null로 계속 나옴
  • 2. index 페이지로 넘어오면 무조건 세션 만료됨
  • 해결 1 - 담아놓은 메시지가 로그아웃 성공일 시에만 세션 만료되도록 처리
  • 해결 2 - msg가 null일 경우에는 알람 띄우지 않도록 = 한 번만 알람 띄우도록 처리