본문 바로가기
Spring Boot/etc

[Spring boot] url query string 안 보이게 처리하기

by Lee David 2022. 8. 9.
반응형

서비스 개발하다보면 내가 설정한 url 이외에 붙게되는 텍스트가 있습니다.

https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=%EB%82%A0%EC%94%A8

물음표 뒤에 오는 텍스트를 Query String이라 부르며 해당 텍스트는 서버에 요청을 보내는 파라미터의 목록입니다.

형식은 물음표를 시작으로 key=value 형태로 뒤에오는 파라미터는 & 인자로 분리해 줍니다.

하지만 웹개발시에는 브라우저에 표시가 될수 있는 민감한 정보를 담고 있는 경우에는 이러한 query string을 숨김 처리하는것을 권장하고 있습니다.

요청 Controller

// 요청 들어오는 페이지
@GetMapping("/view")
public RedirectView viewPage(@RequestParam String data, RedirectAttributes attributes) {
    ...
    attributes.addAttribute("data", data);
    return new RedirectView("redirectView");
}

예시와 같이 /view로 접근하는 요청의 controller의 기본적으로 들어가야 하는 값입니다.

  1. return 해주는  RedirectView로 설정합니다.
  2. attributes에 넘겨줄 값을 담아 줍니다.
  3. RedirectView 를 생성하고 인자로 같은 서버에 있는 url을 남아 줍니다.

리다이렉트 Controller

@GetMapping("/redirectView")
public ModelAndView redirectPage(@ModelAttribute String data) {
    ...
    return ...;
}

요청 Controller에서 return한 값을 받기 위해 필요한 내용입니다.

  1. 요청 Controller 에서 넘겨주는 url 앞에 /를 붙여줍니다.
  2. 넘겨주는 인자를 @ModelAttribute 어노테이션으로 받습니다.

이후에 보여지는 페이지는 Query String을 제외한 url만 보여지게 됩니다.

.../view?data=queryString -> ../redirectView

.../view?data=queryString -> ../redirectView
반응형