홈 화면에서 만약 로그인이 안 된 상태라면, 게시판 클릭 시 로그인 페이지로 이동한다. 여기서 로그인했을 때 홈 화면이 아니라 게시판 페이지로 이동하는게 사용자 입장에서 편리할 것이다.
요청이 들어온 주소는 request.getHeader("refer") , 이동할 주소는 request.getRequestURI() 메서드를 통해 알 수 있다.
(참고로 getRequestURL은 전체 주소가 다 나오고, getRequestURI는 주소가 컨텍스트 루트부터 나온다.)
필터 클래스의 doFilter 메서드안에 후처리 작업부분에 요청이 들어온 주소와 이동할 주소를 받아서 출력하도록 했다.
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 1. 전처리 작업
long startTime = System.currentTimeMillis();
// 2. 서블릿 또는 다음 필터를 호출
chain.doFilter(request, response);
// 3. 후처리 작업
HttpServletRequest req = (HttpServletRequest) request;
String referer = req.getHeader("referer");
String method = req.getMethod();
System.out.print("[" + referer + "] -> " + method + "[" + req.getRequestURI() + "]");
System.out.println(" 소요시간=" + (System.currentTimeMillis() - startTime) + "ms");
}
홈 화면에서 게시판을 클릭했을 때 콘솔창을 보면 잘 출력되고 있다.
페이지 이동 과정은 아래와 같다. 보드컨트롤러에서 로그인 페이지로 이동할 경우에는 이동할 주소를 GET 방식으로 전달하고, loginForm.jsp에서는 input hidden태그에 값을 받아서 로그인 클릭 시 POST방식으로 로그인컨트롤러에 전송되도록 할 것이다.
참조
'3. Back-end > 3-2. Spring MVC - 남궁성' 카테고리의 다른 글
Spring MVC - [ DispatcherServlet ] (0) | 2023.02.01 |
---|---|
Spring MVC - [ 예외처리 ] (0) | 2023.01.30 |
Spring MVC - [ Session(세션) ] (0) | 2023.01.27 |
Spring MVC - [ Cookie(쿠키) ] (2) | 2023.01.27 |
Spring MVC - [ redirect와 forward ] (0) | 2023.01.26 |