내가 보려고 만드는/jsp

[jsp] alert 창을 띄운 뒤 다음 페이지로 넘어가기

gaga_ 2021. 1. 28. 00:32

BookManagement 프로젝트에서 도서를 추가하면 성공적으로 도서를 추가했다는 alert 창을 띄운 뒤, book list 페이지로 넘어가도록 만들고 싶었지만 쉽지 않았다.

 

 

결론적으로 말하자면 Response.Write() 안에 <script> 태그를 사용하여 alert창을 띄워주고, location.href를 이용하여 다음 페이지를 지정해주면 된다.

 

Response.Write("<script>alert('추가하신 도서가 정상적으로 처리되었습니다!');</script>");
Response.Write("<script>location.href='viewbooks.jsp';</script>");

 

아래는 내가 다양하게 시도했던 방법들이다.

 

 

여러 가지 방법을 시도해보았는데, 첫 번째로는 jsp 페이지 하단에 <script> 태그 안에 자바 스크립트 코드를 작성해주었는데 알림창 자체가 뜨지 않고 빈 페이지만 로딩되었다.

<script>
	alert("저장 완료");
    location.href="이동할페이지.jsp";
</script>

 

두번째 방법은 다음과 같다.

<%
	out.println("<script>alert('저장완료');</script>");
	out.println("<script>location.href='veiwbooks.jsp';</script>");
%>

그런데 이 방법을 사용했더니 alert 창은 떴지만, 그 다음 페이지인 viewbooks.jsp로 넘어가지 않았다.

 

 

그러면 자바 스크립트 코드 말고 response.sendRedirect 을 쓰면 안되는지 의문이 들 수 있는데,

이걸 써버리면 이 코드 위에 alert 창을 띄우는 자바 스크립트 코드가 있어도 무시하고 그냥 다음 페이지로 넘어갔다.

<% out.println("<script>alert('저장완료');</script>");%>
response.sendRedirect("viewbooks.jsp");

 

그래서! 찾은 방법이 Response.Write이다.

비록 alert 창을 띄우고 바로 viewbooks.jsp 페이지로 매끄럽게 넘어가는건 아니다.

중간에 빈 페이지가 잠깐 뜬 뒤 넘어가긴 하지만,, 일단 해결했다는 것에 만족한다.

Response.Write("<script>alert('추가하신 도서가 정상적으로 처리되었습니다!');</script>");
Response.Write("<script>location.href='viewbooks.jsp';</script>");