forward 전달 및 sendRedirect 방향 변경

1242 단어

구별

  • 리디렉션 시 브라우저의 주소 변경
  • 전송은 브라우저의 주소가 변하지 않음
  • 구별

  • 리디렉션은 실제로 두 번의 요청이 발생했다
  • 전송 요청이 한 번만 있음
  • 리디렉션: 요청 보내기 --> 서버 실행 --> 응답 요청, 브라우저에 새 주소와 응답 코드 되돌리기 --> 브라우저는 응답 코드에 따라 이 응답을 리디렉션으로 판정하고 자동으로 새 요청을 서버에 보냅니다. 요청 주소는 이전에 되돌아온 주소 --> 서버 실행 --> 응답 요청을 브라우저에 보냅니다.
    전송: 요청 보내기 --> 서버 실행 --> 요청 재설정, 예를 들어request를 통해.setAttribute(name,value) --> 전송된 주소에 따라 이 주소를 가져오는 웹 페이지 --> 브라우저에 응답 요청

    구별 3

  • 리디렉션 시 주소는 모든 주소가 될 수 있습니다
  • 전송된 사이트는 본 사이트의 사이트여야 합니다
  • 구별

  • 리셋: 이전의 리퀘스트에 저장된 변수가 모두 효력을 잃고 새로운 리퀘스트 작용역에 들어갑니다.
  • 전송: 이전의request에 저장된 변수는 효력을 잃지 않습니다. 마치 두 페이지를 한데 모은 것 같습니다.

  • 구별

  • 리디렉션: 상대적으로 빠름
  • 전송: 상대적으로 느림
  • 실제 프로그래밍

  • 리디렉션
      resp.sendRedirect("/getShoppingCart");
    
      resp.sendRedirect("www.baidu.com");
    
  • 전송
      RequestDispatcher requestDispatcher
                  = req.getRequestDispatcher("/addShoppingCart");
    
      requestDispatcher.forward(req, resp);*/
    
    은 전송하기 전에req를 진행할 수 있다.setAttribute(String, Object)는 전달할 매개 변수나 대상을 request에 넣고 새 Servlet에서 reg를 할 수 있습니다.getAttribute(String) 매개변수 꺼내기
  • 좋은 웹페이지 즐겨찾기