1. forward
특정 서블릿에 대한 요청을 다른 서블릿이나 JSP로 넘겨준다. (파라미터를 넘길 수 있다.)
상대방에게 페이지 주소를 숨길 때 사용 할 수 있므며, redirect 보다 성능이 좋다.
URL은 바뀌지않으며, 내부에서만 접근이 가능하다.
2. redirect
다른 페이지로 넘어가도록 한다. (직접 파라미터를 넘길 수 없다.)
요청받게되면 url을 클라이언트에게 전달하고, 클라이언트가(web) 새로운 url을 요청하고 그에 따른 응답을 한다.
URL값이 넘어가기 때문에 길이에 제한이 있다.
즉, 성격이 다른 페이지 서블릿이 그 길을 알려주고 브라우저가 값을 받아오게 하는 것이다.
<%@ 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>
<%
// ★주의★ 페이지를 이동하는건 한 파일에서 단 한번만 사용될 수 있다.
// == return
// Forward
String url = "http://naver.com";
RequestDispatcher rd = request.getRequestDispatcher(url);
rd.forward(request, response);
// Redirect
// .sendRedirect("url");
response.sendRedirect("http://naver.com");
%>
</body>
</html>
예제) 각각의 사이트로 이동하기
html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="Ex12MoveUrl.jsp">
<!-- select : input
옵션이 여러 개라도 보내지는 데이터는 하나다.
-->
<select name="selection">
<option value="naver">네이버</option>
<option value="daum">다음</option>
<option value="google">구글</option>
</select>
<button type="submit">페이지로 이동</button>
</form>
</body>
</html>
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>
<%
String selection = request.getParameter("selection");
String url = "";
if(selection.equals("naver")) url = "http://naver.com";
else if(selection.equals("daum")) url = "http://daum.net";
else url = "http://google.com";
response.sendRedirect(url);
%>
</body>
</html>
'Web > JSP_Servlet' 카테고리의 다른 글
객체실습_html에서 값 입력 후 jsp에서 출력 (1) | 2023.04.19 |
---|---|
쿠키 (0) | 2023.04.18 |
JSP 객체_html코드 안에서 Java코드 사용 (0) | 2023.04.18 |
MVC(Eclipse)+ORACLE DB 연결(환경설정) (0) | 2023.04.11 |
MVC 기초_총합 구하기 (0) | 2023.04.11 |
댓글