작성
·
522
1
로그인 - 서블릿 HTTP 세션2에서 로그인을 처음 시도하면 URL이 jsessionid 를 포함하고 있는데 - 리다이렉트되는 페이지는 MVC2 강의 처음에 생성했던 static/index.html로 리다이렉트 됩니다.
(MVC 강의 1부터 2까지 하나의 프로젝트에 설정하고 있어서 - 이전의 실습내용도 삭제하지 않은 상황입니다.)
물론 application.yml에 server.servlet.session.tracking-modes=cookie 적용해주면 강의와 똑같이 정상적으로 동작하지만, 위에서처럼 index.html이 나오는 것은 무슨 이유 때문일까요?
답변 2
0
시간이 꽤 지났지만 혹시 이유를 찾으셨나요..? 저도 이게 궁금해서 찾아보고 있는데 정보를 못찾겠습니다..
강사님이 강의를 진행한 프로젝트에
스프링 부트 버전은 2.4.4(내장톰캣 버전=Apache Tomcat/9.0.44) 해당 버전에서는 경로에 ;jsession=XXX가 붙어도 GetMapping("/")으로 매핑된 컨트롤러의 메서드가 의도한대로 실행되지만 2.7.13버전(제가 실습하고 있는 버전)은 질문자님 처럼 static/index.html 없다면 templates/index.html이 출력되네요
url에 /+;(세미콜론)만 붙이면 ("/")로 매핑된 주소말고 웰컴페이지를 찾는거 같아요!!
혹시 이유 찾으셨으면 공유 부탁드려도 될까요?!
0
답변 감사합니다. / 답변으로 주신 링크는 강의 내용에도 있는 부분임을 확인했고 실제 적용하여 세션id가 보이지 않는 것은 잘 적용되었습니다.
그런데 만약 server.servlet.session.tracking-modes=cookie 적용하지 않은 상태에서도
위와 같이 로그인된 상태로 loginHome.html이 떠야 하는데...
저는 static/index.html로 리다이렉트됩니다 (MVC2 강의 초반부에 타임리프 강의 때 만들었던 그 index.html입니다) 그래서 이 index.html을 삭제했더니
이번에는 위와 같이 에러 페이지가 나왔습니다. index.html은 애초부터 문제가 아니었습니다.
이게 그렇게 중요한 부분은 아닐 수 있고 / 해결되지 않더라도 작동시키는데는 문제가 없지만, URLS에 JSESSION ID가 뜰 때 loginHome.html로 리다이렉트되지 않는 이유는 무슨 문제인지 감이 잡히지 않아 다시 문의드립니다.