코딩항해기

[JSP] response.sendRedirect() 주의사항 본문

JSP

[JSP] response.sendRedirect() 주의사항

miniBcake 2024. 8. 8. 14:20

 

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