Project/2022.02_게시판 만들기

[스프링] 로그인 후 원래 요청한 페이지로 이동하기-2

멋쟁휘개발자 2022. 3. 7. 17:26

[이전 게시글]

Interceptor로 로그인 체크하기

로그인 체크 후 요청 페이지로 이동하기

 

 

 

[배경]

인터셉터로 로그인 체크하여 고정된 페이지가 아닌, user가 요청한 페이지로 이동하는 것까지는 좋았으나,

파라미터가 유실되는 문제가 확인되었다.

 

[의도]

파라미터까지 가지고와서 정확한 요청 페이지를 보여주자.

 

[원리]

request.getRequestURL()을 통해 URL을 가지고 온 것처럼, 파라미터도 가지고 와야 한다.

이때 사용하는 request 객체는 아래와 같다.

  • request.getQueryString()

 

 

✓ 예제 실습

 

 

 After 로그인 Controller

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
	
		HttpSession session  = request.getSession();
		
			if(session.getAttribute("sessionId")==null) {
				System.out.println("[INTERCEPTOR_전] sessionId 확인 실패");
				
				//기존 내용에서 request.getQueryString()이 추가됨
				if(request.getQueryString()!=null) {
				response.sendRedirect("/loginView?requestURL="+request.getRequestURL()+"?"+request.getQueryString());
				}else {
					response.sendRedirect("/loginView?requestURL="+request.getRequestURL());
				}
				return false;
				
			}
			
		System.out.println("[INTERCEPTOR_전] sessionId 확인 성공");
		
	    return true; 
	}

 

 

 

 

정말 간단하게 해결할 수 있는 부분이었는데, 생각보다 나와 맞는 자료가 많지 않아 애 먹은 부분이었다..끗