yunyj99
라둥이
yunyj99
GitHub
전체 방문자
오늘
어제
  • 분류 전체보기 (309)
    • 1. 프로그래밍 (50)
      • 1-1. Git (17)
      • 1-2. Java (13)
      • 1-2-1. Java GUI (1)
      • 오류 (12)
      • 기타 (7)
    • 2. Front-end (57)
      • 2-1. HTML (5)
      • 2-2. CSS (19)
      • 2-3. Java Script (33)
      • 2-4. React (0)
    • 3. Back-end (47)
      • 3-1. Spring MVC - 국비 (15)
      • 3-2. Spring MVC - 남궁성 (30)
      • 3-3. Spring - 김영한 (2)
    • 4. Android (1)
    • 5. DB (20)
      • 4-1. MySQL DBMS (20)
    • 6. 자료구조 & 알고리즘 (44)
      • 6-1. 자료구조 (14)
      • 6-2. 백준 (30)
    • 7. 웹 디자인 (7)
      • 7-1. UX 디자인 (7)
    • 8. 자격증 (35)
      • 8-1. 정보처리기사 (35)
    • 프로젝트 (3)
      • 프로젝트 기록 (3)
    • etc... (43)
      • 패스트캠퍼스 챌린지 (39)
      • 잡담 (4)

블로그 메뉴

  • 홈
  • 태그

최근 글

티스토리

hELLO · Designed By 정상우.
yunyj99

라둥이

쓰기
Spring MVC - [ 로그인 시 원래 목적 페이지로 이동 ]
3. Back-end/3-2. Spring MVC - 남궁성

Spring MVC - [ 로그인 시 원래 목적 페이지로 이동 ]

2023. 1. 29. 00:42

홈 화면에서 만약 로그인이 안 된 상태라면, 게시판 클릭 시 로그인 페이지로 이동한다. 여기서 로그인했을 때 홈 화면이 아니라 게시판 페이지로 이동하는게 사용자 입장에서 편리할 것이다.

요청이 들어온 주소는 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방식으로 로그인컨트롤러에 전송되도록 할 것이다.

보드 컨트롤러에서 로그인 화면으로 이동 시 GET방식으로 전달
로그인 화면에서는 hidden input태그에 담아서 전달
로그인 컨트롤러에서 toURL 값이 있으면 toURL, 없으면 홈으로 이동하도록 설정

 

 


참조

https://fastcampus.co.kr/dev_academy_nks

 

스프링의 정석 : 남궁성과 끝까지 간다 | 패스트캠퍼스

국비지원 조기 마감 신화, 베스트셀러 'JAVA의 정석'의 저자 남궁성의 Spring 강의입니다! 오픈톡방과 카페에서 평생 AS를 제공하며 완강과 취업까지 도와드립니다. 지금 할인가로 확인하세요!

fastcampus.co.kr

'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
    '3. Back-end/3-2. Spring MVC - 남궁성' 카테고리의 다른 글
    • Spring MVC - [ DispatcherServlet ]
    • Spring MVC - [ 예외처리 ]
    • Spring MVC - [ Session(세션) ]
    • Spring MVC - [ Cookie(쿠키) ]
    yunyj99
    yunyj99
    개발자를 목표로 하는, 새싹처럼 성장하고 싶은 사람의 학습 공간 ^v^

    티스토리툴바