[JSP] 7.2 리다이렉트와 자바 스크립트를 이용한 페이지 이동
2022. 4. 8. 15:37ㆍJAVA/Servlet&JSP
<jsp:forard> 액션 태그를 이용한 페이지 이동은 웹 컨테이너 내부에서 이루어지는 페이지의 이동이였습니다. 이는 웹 브라우저의 URL이 변경되지 않는 것을 확인하여 알 수 있습니다.
하지만 때로는 웹 브라우저 차원에서 페이지가 이동하길 원합니다. 예를 들어 게시판의 게시글을 작성한 다음 게시글 목록으로 이동하는 것이 그 예입니다. 이러한 경우 리다이렉트 방식이나 자바 스크립트 방식을 사용하여 페이지를 이동시킬 수 있습니다.
리다이렉트 또는 자바스크립트를 이용한 페이지 이동 방식
리다이렉트 이동 방식
<%
String paramString = "code=A000&type=C";
response.sendRedirect("/to/move.jsp?"+paramString);
%>
11_write.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--글을 저장하는 코드가 위치 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<script language="JavaScript">
location.href = "<%= request.getContextPath()%>/Chapter07/11_2_list.jsp";
</script>
</body>
</html>
11_2_list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
글 목록이 출력된다.
</body>
</html>
11_write.jsp 실행결과
http://localhost:8080/jsp2/Chapter07/11_write.jsp
- 실행결과 <jsp:forward>와는 달리 URL이 변경되어 페이지가 이동된 것을 확인할 수 있습니다.
1. 이동할 페이지에 정보 전달하기: 파라미터 사용 방법
리다이렉트 또는 자바스크립트 언어를 통한 페이지 이동 방식은 GET 방식으로 파라미터를 전달해야 합니다.
12_sendParam1.jsp (리다이렉트 방식)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="java.net.URLEncoder"%>
<%@ page import ="java.util.Random"%>
<%
Random random = new Random();
int number = random.nextInt();
String numberString = Integer.toString(number);
response.sendRedirect(request.getContextPath()+"/Chapter07/12_2_receiveParam.jsp?num="+
URLEncoder.encode(numberString));
%>
13_sendParam2.jsp (자바스크립트 방식)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import ="java.net.URLEncoder"%>
<%@ page import ="java.util.Random"%>
<%
Random random = new Random();
int number = random.nextInt();
String numberString = Integer.toString(number);
%>
<script>
location.href = "<%= request.getContextPath()%>/Chapter07/12_2_receiveParam.jsp"+
"?num=<%= URLEncoder.encode(numberString)%>";
</script>
12_2_receiveParam.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
전달받은 임의의 정수 : <%= request.getParameter("num") %>
</body>
</html>
실행결과
References
source code : https://github.com/yonghwankim-dev/JSP2.0/tree/master/jsp2/src/main/webapp/Chapter07
JSP 2.0 프로그래밍 기초부터 중급까지
'JAVA > Servlet&JSP' 카테고리의 다른 글
[JSP] 8.2 <jsp:include> 액션 태그를 이용한 레이아웃 템플릿 (0) | 2022.04.08 |
---|---|
[JSP] 8.1 <jsp:include> 액션 태그를 이용한 페이지 모듈화 (0) | 2022.04.08 |
[JSP] 7.1 <jsp:forward> 액션 태그를 이용한 JSP 페이지 이동 (0) | 2022.04.08 |
[JSP] 6.5 에러 페이지의 우선 순위 및 에러 페이지 지정 형태 (0) | 2022.04.08 |
[JSP] 6.4 예외 종류별 에러 페이지 지정하기 (0) | 2022.04.08 |