인프런 커뮤니티 질문&답변
안녕하세요 인터셉터관련 질문드립니다.
작성
·
307
1
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요 강의 듣다가 인터셉터에 대해 궁금점이 생겨 질문드립니다.
답변 1
2
1. 서버 입장에서는 여전히 메서드가 실행중이기 때문에 return하여 메서드의 실행을 종료해야 합니다.
2. 25만 추출하는 방법은 정규표현식을 한 번 찾아보세요. loginMember쪽은 제대로 하신 것 같은데 null인거 보면 로그인 하지 않은 사용자가 요청한 것 아니실까요??
답변감사드려요
<1> 완전히 이해했습니다.
<2> 25만 추출하는 방법은 정규표현식을 한 번 찾아보세요.
->정규표현식도 공부하고 적용하여보겠습니다
loginMember쪽은 제대로 하신 것 같은데 null인거 보면 로그인 하지 않은 사용자가 요청한 것 아니실까요??
-->이부분은 제가 실수했네요 다시 해보니 loginMember정보얻을수있엇습니다.
사실 첨에 질문드린게 제일 궁금한 내용이라 다시 질문드려요
HandlerMethod hm = (HandlerMethod) handler;
[스프링 인터셉터 = 요청 로그] 강의11분경입니다
handler에서 필요한것들을 뽑아서 사용할수있다고 하셧습니다.
컨트롤러의 메서드에서 @PathVariable Long id를 넘기기떄문에
handler에서 메서드의 파라미터 정보를 얻을수있다면 id로 회원정보를 찾는게
수월할거같아서요
인터셉터의 preHandle 메서드의 인자인 handler에서
어떻게 컨트롤러의 메서드의 파라미터로 들어오는 정보들을 꺼내어 사용하는지 알고싶습니다
handlermethod는 메서드 시그니처에 대한 정보를 들고 있는 것이지 해당 파라미터로 들어오는 값을 들고 있진 않습니다.
request 자체에서 값을 뽑아내셔야 합니다.






안녕하세요 답변 달아주셔서 감사합니다.
<1>
경고창을 띄우고 '/'이 주소로(home) 이동하는 방식으로는
컨트롤러단에서 제가 원하는 결과를 얻을수 없는건가요?
flush()이후에 return "home"; 하면 컨트롤러로 리턴되어서
home.html로 가게 되어 나머지 밑의 코드들이 실행되지않는건 이해했습니다.
(사실 사진여러장올리면 보기 힘드니까 한장에 담아서 질문드리려고 코드를 저렇게 작성했는데
실제로는 정적팩토리메서드를 만들어서요..
검증로직이후에 리턴값으로 home이나 다른 html이름을 문자열로 넘기는 방식말고는
무조건 메서드의 나머지 코드들이 다실행될수밖에 없는건가요
(중간에 다른페이지로 요청했음에도 불구하고)
<2>
[스프링 인터셉터 = 요청 로그] 강의11분경입니다
handler에서 필요한것들을 뽑아서 사용할수있다고 하셧습니다.
.찍어서 나오는 매서드들을 다 시도해보았는데 원하는 정보를 뽑아내는 방법을 알아내지못했습니다
일단 로그인체크인터셉터로 실험을 해봤구요
request로부터 url 정보를 가져와 id를 추출하고, session을 가져와 loginMember를 찾아오면 될 것 같습니다. <=== 이부분의 부연설명을 듣고싶습니다.
사진과 같이 정보가 나오는데 어떻게 /member/25/edit에서 25만 추출할수있는지
세션을 가져오는 부분도 어떻게 loginMember를 찾아올수있는지 잘모르겠습니다.
<3>
필터관련부분도 따로 더 공부하고 시도해보겟습니다