▶ forward(요청 위임)
- 클라이언트 요청을 받은 Servlet/JSP가
직접 응답하는 것이 아닌
다른 Servlet/JSP에
HttpServletRquest, HttpServletResponse
객체를 넘겨서(위임) 대신 응답하게 하는 것
- 요청 위임시
RequestDispatcher(요청 발송자)를 이용
- 요청 위임할 JSP ***파일 경로*** 작성
- 응답 화면(결과 페이지) 주소는
처음 Servlet이 요청 받은 주소 그대로!
#예제
<form action="/fr/forward">
forward 입력 1 : <input type="text" name="forwardInput1">
<br>
forward 입력 2 : <input type="text" name="forwardInput2">
<button>forward 확인하기</button>
</form>
[Servlet]
package edu.kh.jsp2.controller;
import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet ("/fr/forward")
public class ForwardServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// requestScope에 값 세팅
req.setAttribute("str", "안녕하세용용용");
//JSP 파일 경로 작성(webapp 폴더 기준)
String path = "/WEB-INF/views/fr/forward_result.jsp";
// 요청 발송자를 이용해서 req, resp 위임하기
req.getRequestDispatcher(path).forward(req, resp);
}
}
[result.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>forward 결과 페이지</title>
</head>
<body>
<h3>request scope 객체를 이용해서 전달 받은 값</h3>
<ul>
<li> forward 입력 1 : ${param.forwardInput1}</li>
<li> forward 입력 2 : ${param.forwardInput2}</li>
<li> str : ${str}</li>
</ul>
</body>
</html>
#결과


'BackEnd > Java' 카테고리의 다른 글
| [JDBC] dto / dao / common(Template) / run / service / view (0) | 2024.08.27 |
|---|---|
| [Servlet/JSP]Redirect(재 요청) (0) | 2024.08.16 |
| [Servlet/JSP]Dynamic Web Project의 폴더 구조 및 연습하기 (0) | 2024.08.16 |
| [Servlet/JSP]JSTL 예제 (책 목록 조회하기) (0) | 2024.08.16 |
| [Servlet/JSP]JSTL / 조건문 / 향상된 for문 (0) | 2024.08.16 |