Forward란?

2022. 12. 22. 13:35· BackEnd/JSP & Servlet
목차
  1. References

1. Forward란?

위처럼 client가 servlet1에 어떠한 요청을 보냈다고 하자. 이때 servlet1이 요청의 일정 부분만 처리하고 나머지를 다른 servlet에 넘겨주었다. 이렇게 넘겨주는 작업을 Forward라고 부른다. 나머지 작업을 넘겨받은  servlet은 작업을 모두 마치고 응답을 만들어서 client에게 보내주게 된다.

2. 예제 코드

// Servlet01.java의 service 메서드
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    int randValue = (int)(Math.random()*10)+1;
    request.setAttribute("randValue", randValue);

    RequestDispatcher requestDispatcher = request.getRequestDispatcher("/Servlet02");
    requestDispatcher.forward(request, response);
}

Servlet01에서는 먼저 1~10까지의 난수를 생성한다. 난수 생성 후 해당 정보는 이후 forward를 통해 다른 Servlet으로 넘길 것이므로 request에 해당 정보를 추가해야 한다. 이때 request.setAttribute()를 사용한다. forward를 위해서는 위처럼 request.getRequestDispatcher()를 통해 RequestDispatcher 인스턴스를 생성해야 한다. 만든 requestDispatcher 객체의 forward를 통해 forward를 수행할 수 있다.

// Servlet02.java의 service 메서드
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>Forward</title></head>");
    out.println("<body>");

    int randValue = (int)request.getAttribute("randValue");
    out.println("randValue : "+randValue);

    out.println("</body>");
    out.println("</html>");
}

이후 Servlet02에서는 위와 같은 작업을 수행한다. 이전에 넘겨준 randValue는 위처럼 request.getAttribute()를 통해 가져올 수 있다.


References

https://www.boostcourse.org/web326

저작자표시 (새창열림)

'BackEnd > JSP & Servlet' 카테고리의 다른 글

[JSP] EL(Expression Language)  (0) 2022.12.23
Servlet과 JSP 연동  (0) 2022.12.23
Redirect란?  (0) 2022.12.22
Scope (Page, Request, Session, Application)  (0) 2022.12.22
JSP 내장 객체  (0) 2022.12.22
  1. References
'BackEnd/JSP & Servlet' 카테고리의 다른 글
  • [JSP] EL(Expression Language)
  • Servlet과 JSP 연동
  • Redirect란?
  • Scope (Page, Request, Session, Application)
코딩마루
코딩마루
코딩마루
Nam's Study Note
코딩마루
전체
오늘
어제
  • 분류 전체보기 (169)
    • BackEnd (88)
      • JSP & Servlet (12)
      • Java (12)
      • JDBC (5)
      • Spring (55)
      • Spring Security (3)
      • AWS (6)
      • Docker (0)
    • FrontEnd (4)
      • HTML (4)
    • Algorithm (23)
      • Brute Force (2)
      • Greedy (2)
      • Graph (2)
      • Dynamic Programming (4)
      • Divide and Conquer (1)
      • Data Structure (11)
    • AI (4)
      • NLP (4)
    • DB (29)
      • Oracle (13)
      • MySQL (15)
    • Data (8)
      • Crawling (8)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.3.0
코딩마루
Forward란?
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.