일단 로그인을 만들었다. 로그인창에서 db에 있는 데이터값을 넣고 로그인을 누르면 해당 홈페이지로 이동하게끔 하도록 했다. 하지만 그건 로그인 된 것이 아니다. 다시 로그인 창으로 이동해서 다른 데이터 값을 넣어도 해당 홈페이지로 이동한다. 그렇다. 세션을 통해 로그인 정보를 기억하게끔 해야 로그인 상태를 유지할 수 있다.

 

 

 

먼저 로그인 서비스로 가서 메서드에 파라미터 값으로 불러온 로그인 유저(내가 보낸 정보)에 setter로 db에서 불러온 해당 유저의 정보들을 전부 넣고, 컨트롤러에 전달한다.

 

 

 

 

먼저 컨트롤러에 가서 로그인 서버에 파라미터로 HttpSession 을 추가하고, 만약 로그인이 성공적으로 끝났다면 setAttribute로 해당 로그인 유저의 정보들을 넣고, "user"라는 이름으로 명명한다. 그리고 홈페이지로 리다이렉트 하도록 하였다.

 

 

 

 

html로 가서 만약 'user'라는 이름의 해당 세션이 null 값이 아닐 경우(로그인 되어있는 경우) 이미 로그인 되어있다는 메시지창과 함께, 홈페이지로 넘어가게끔 하였다.

 

 

 

 

홈 페이지로 가면 해당 세션의 유저 객체가 null이 아닐경우 해당 유저의 닉네임을 화면에 보여지도록 하였다.

 

 

 

 

그 결과 비로그인 유저라면 홈페이지를 접속했을 시, 위 화면이 뜨고 /user/login에 접속해서 로그인 하고 홈페이지에 접속했을 시 화면에 로그인 유저의 닉네임이 뜨도록 되어 있다.

 

 

 

 

만약 로그인 되어 있는데도 /user/login 에 접속했다면 위 메세지가 뜨면서 자동으로 홈페이지로 가게 되어있다.

 

 

 

 

 

 

로그아웃을 구현하는건 간단하다. HttpSession을 불러와서 setAttribute로 이미 만들어진 "user"라는 이름의 세션에 null 값을 넣어주면 로그인이 풀리게 된다. 그리고 /user/login 주소로 리다이렉트 하게끔 하였다.

 

 

 

 

+ Recent posts