코딩항해기
[JSP] 이전 페이지 요청 재수행 (GET) 본문
이전 페이지로 이동하는 방법은 history를 사용하는 방법으로 간단하게 구현할 수 있지만 정말 순수하게 이전 페이지를 보여주는 것이기 때문에 데이터에 변동이 있을 경우 해당 내용이 반영되지 않는다. 이 때 Referer를 통해
Referer
htttp 헤더 중에 하나로 Referer 헤더는 사람들이 어디로부터 와서 방문 중인지를 인식할 수 있도록 해주며 해당 데이터는 예를 들어, 분석, 로깅, 혹은 캐싱 최적화에 사용될 수 있다. referer를 참조해 현재 표시하는 웹페이지가 어떤 웹페이지에서 요청되었는지 알 수 있다.
예를들어, http://www.test.com/1.html이라는 웹페이지에 있는 링크를 클릭하여 http://www.test.com/2.html으로 이동했을 때 referer는 http://www.test.com/1.html이 된다.
Referer를 활용한 재요청
이 주소를 활용하면 바로 이전 페이지로 이동하면서 재 요청을 서버로 보내기 때문에 데이터를 갱신할 수 있다.
다만 url에 포함되지 않는 방식이라면 사용할 수 없다. (GET 방식만 가능)
<button id="back-button" class="btn button-yello"
onclick="location.href='<%= request.getHeader("Referer") %>'">
게시판 돌아가기</button>
현재 프로젝트에서는 검색을 GET 방식으로 하고 있기 때문에 history.back 대신 사용하면 검색과 페이지를 유지하면서도 데이터를 다시 서버에서 받아오기 때문에 좋아요 같이 변화된 데이터를 반영할 수 있다.
주의할 점은 password의 경우 referer로 불러 올 수 없다고 한다.
referer? referrer?
referer은 referrer의 오타로 자바스크립트에서는 referrer를 사용하는데, 서블릿(JSP)에서는 오타 문제로 인해 referer로 명시해야한다.
(자바스크립트 : document.referrer;)
'JSP' 카테고리의 다른 글
[JSP] JSTL, EL, HTML, CSS, JS 동작 순서 (클라이언트 서버 사이드) (0) | 2024.11.03 |
---|---|
[JSP] 내장 객체 (pageContext) (0) | 2024.10.09 |
[JSP] JDBC - MyBatis 기초 (1) | 2024.09.27 |
[JSP] JDBC - 컨디션 하드코딩 방지, 컨디션 값 변동이 예상될 때 (1) | 2024.09.15 |
[JSP] 서버 시작할 때 크롤링한 샘플데이터 추가하기 (2) | 2024.09.12 |