본문 바로가기
Develop/Spring

[Spring] Redirect를 이용하여 특정 페이지로 전환하기 (2)

by 코딩의성지 2019. 9. 28.

Spring에 대한 글을 몇개 올렸다. 이렇게 글을 올리다 보니 조금은 Spring이라는게 익숙해 진 것 같다.

 

오늘은 Redirect를 이용해서 페이지가 돌아가는 걸 실제로 코드로 구현해보려고한다.

(Redirect가 뭔지를 모르신다면~~ https://devkingdom.tistory.com/10) 

 

현재 프로젝트를 진행 중 인게 있는데, 이 프로젝트에서 회원 관리 모듈이 필요해서 구현 중인 소스가 있다. 이 소스를 가지고 설명을 드리겠다.

 

웹사이트에서 사용하는 대부분의 서비스들은 로그인이 되어있어야 가능하다. 이전의 글에서 보여줬던 메일함을 여는 것이나 웹툰을 보는 것 뿐만아니라, 단순한 회원정보 수정, 탈퇴 등의 기능도 로그인 정보가 필요하다.

 

이전에 내가 올린 글에서 Session 이라는 것을 설명 한 적이 있다. 이 Session이라는 녀석을 이용해서 로그인 정보를 유지하는데, Session에 로그인 정보가 있는지 없는지를 확인하여 페이지를 전환해줘야한다.

 

아래의 회원 탈퇴 서비스를 보자. 

회원 탈퇴 서비스

 회원 탈퇴 요청을 하면 로그인 여부를 확인할 것이고 로그인이 되어 있다면 회원 탈퇴 페이지로 로그인이 되어 있지 않다면 메인 페이지로 보내게 짜놨다.

 

실제 프로그램 상에서는 다음과 같이 구현이 되어 있다.

프로그램 상에서의 회원 탈퇴 서비스

원하는 서비스로 URL을 날리고, Session 값을 체크해서 정보가 있으면 원하는 서비스의 페이지로 없으면 index 페이지로 날리는 것이다. 조금 더 자세하게 코드 상에서 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    @RequestMapping("/v1/removeForm")
    public ModelAndView removeForm(HttpServletRequest request) {
        
        ModelAndView mav = new ModelAndView();
        
        HttpSession session =  request.getSession();
        User user = (user) session.getAttribute("user");
        
        if(user == null) {
            mav.setViewName("redirect:/index.jsp");
        } else {
            mav.addObject("user", user);
            mav.setViewName("/removeForm");
        }
        
        return mav;
    }

위의 코드를 보면 Seesion 에서 user값을 꺼내와서 이게 null인지 아닌지를 체크한뒤에 redirect를 해주거나 원하는 페이지로 보내주는 걸 볼 수 있다.

실제 만들어놓은 사이트에서 결과를 보자. 

<내가만든 사이트의 메인 페이지>

아... 내가 만들고 있는 서비스가 뭔가 소개팅 앱같은 느낌을 주는데... 그런 서비스는 아니고 신혼 부부를 대상으로 하는 서비스다ㅎㅎㅎ 앱은 거의다 만들었고, 이제 막 웹 쪽 작업을 시작했다.

아무튼 간단하게 만들어 놓은 로그인을 해보자. 

로그인 후 화면

마치 네이버에서 로그인을 한 듯한 화면을 볼 수 있다. 내가 지금은 로그인을 했기때문에 Session에 로그인 정보가 담겨있다. 여기서 회원탈퇴 버튼을 클릭해보자.

회원탈퇴 페이지

Session에 값이 저장되어 있기 때문에 ID 값에 내 아이디가 들어와 있다. 회원탈퇴를해서 Session을 날리자. 

회원 탈퇴 결과 화면

자 이렇게 하면, Session 정보가 날라가는데 ... 여기서 직접 회원 탈퇴 페이지로 접속해보면 ...!!!

 

메인 화면

메인 화면으로 가는 걸 볼 수 있다~~!! ㅎㅎㅎ

 

redirect는 이렇게 쓰는 것이다. 소스코드랑 결과화면을 넣다보니 글이 좀 길어졌다. 아무튼 오늘도 우리 모두 수고하고 즐거운 코딩하자.

반응형

댓글