코딩항해기
[JSP] response.sendRedirect() 주의사항 본문
response.sendRedirect()
내장객체인 response의 sendRedirect() 메서드를 사용하는 것으로 요청을 보내 매개변수로 들어온 주소로 페이지를 이동한다.
사용 시 주의할 점
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
if(true){
out.println("<script>alert('이동');history.go(-1);</script>");
}
response.sendRedirect("a.jsp");
%>
이러한 코드가 있고, 이전 페이지가 b.jsp라면 어느 페이지로 이동하게 될까?
정답은 a.jsp이다. if문이 없더라도, history.go(-1)이 없더라도 alert창도 띄우지 않은 채 바로 이동해버리는데,
그 이유는 실행할 시간이 없었기 때문이다.
JSP는 Servlet 파일로 컴파일되어 실행되는데 컴파일 되어 alert창을 실행하기도 전에 다음 코드인 sendRedirect를 만나 새 요청을 받고 페이지를 이동하는 것이다.
따라서 이런 경우를 방지하기 위해서는 else문을 꼼꼼하게 넣어줘야한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
if(true){
out.println("<script>alert('이동');history.go(-1);</script>");
}
else{
response.sendRedirect("a.jsp");
}
%>
'JSP' 카테고리의 다른 글
[JSP] header, footer 넣기 (0) | 2024.08.09 |
---|---|
[JSP] JDBCUtil 템플릿 정리 (0) | 2024.08.09 |
[JSP] JSP 기본 태그 (0) | 2024.08.07 |
[JSP] 내장 객체 (request, response) (0) | 2024.08.07 |
[JSP] 내장 객체 (exception, out) (0) | 2024.08.07 |