JS) 로그인시 페이지 이동

프로젝트 중 로그인을 하면 시도한 페이지를 유지하고 싶은 생각이 들게 되어 시도했다.

처음에는 Spring에서 아무 페이지든 jsp를 호출할 때 Model(request 저장공간)에 url의 정보를 담아서 포워딩 해준다음 input hidden으로 넘겨주는게 가능하지 않을 까라는 생각에 시도 후 정상 작동되어 기뻤지만,

욕심이 나서 그런지 각각 request controller에 해당 url 값을 담아서 넘겨줘야 한다는 것 때문에 효율성이 상당히 떨어져 보였다. 그래서 고민된 것이 '아니 브라우저가 url 정보를 가지고 있지 않을까' 이다.

검색을 몇차례 해본 후 url 정보를 가지고 있는 window 를 발견하게 되고 시도 했다.

<script>
    const url = window.location.href;
    const inputUrl = document.querySelector("#inputUrl");

    inputUrl.value = url.substring(url.indexOf(/bseven/)+8);
</script>

가져올 때 http부터 가져오기 때문에 불필요한 정보는 잘라내기 위해 substring해서 가져온 뒤

로그인을 하는 nav바의 input hidden에 넣어주었다.

<form action="/bseven/member/loginProcess" method="post" class="d-flex">
                          <input name="member_id" class="form-control me-2" type="text" placeholder="ID" aria-label="Search">
                          <input name="member_pw" class="form-control me-2" type="password" placeholder="PW" aria-label="Search">
                          <input id="inputUrl" type="hidden" value="" name="page">
                          <input class="btn btn-outline-success" type="submit" value="login">
                          <a href="/bseven/member/registerPage" class="btn btn-outline-success ms-1">Join</a>
                          </form>

nav바는 include 해서 사용하기 때문에 공유해서 쓰면 매번 jsp를 호출하는 request controller에 url정보를 담아 포워딩하는 것이 필요없고, html문과 js로 해결할 수 있다.

좋은 웹페이지 즐겨찾기