웹 개발을 할 때 점프가 가장 많이 사용됩니다. 오늘은 두 가지 유형의 점프를 배워보겠습니다. 관심 있는 친구들이 한 번 살펴보시면 도움이 될 것입니다.
첫 번째는 request.getRequestDispatcher().forward(request,response):
1. 메소드 호출과 동일하며 실행 중에 실행으로 전환됩니다. 현재 파일 실행. 두 파일(현재 파일과 대상 파일)이 동일한 요청에 속하며 앞 페이지와 뒷 페이지가 요청을 공유하는 데 사용할 수 있습니다. request.setAttribute( ) 및 request.getAttribute().
2. 두 번 실행한 후에도 주소 표시줄은 변경되지 않고 여전히 현재 파일의 주소입니다.
3. 이 웹 애플리케이션 외부의 페이지 및 웹사이트로 리디렉션할 수 없으므로 리디렉션 속도가 빨라야 합니다.
4. URL에 포함된 "/"는 애플리케이션(프로젝트)의 경로를 나타냅니다.
두 번째 유형은 response.sendRedirect()입니다.
1. 클라이언트가 서버에 요청을 보내고 클라이언트가 응답하는 것과 같습니다. 응답을 받은 후 서버에 또 다른 요청이 전송되는데, 총 2개의 요청이 앞 페이지와 뒷 페이지에서 요청을 공유하지 않으며 리디렉션 전 request.setAttribute()를 통해 설정된 속성 값을 읽을 수 없습니다.
2. 두 번 실행하면 주소 표시줄이 대상 파일의 주소로 변경됩니다.
3. 이 웹 애플리케이션 외부의 페이지 및 웹사이트로 리디렉션할 수 있으므로 리디렉션 속도가 상대적으로 느립니다.
4. URL에 포함된 "/"는 루트 디렉터리의 경로를 나타냅니다.
특별 적용: 데이터 수정, 삭제, 추가 시 response.sendRedirect()를 사용해야 합니다. request.getRequestDispatcher().forward(request,response) 를 사용하면 작업 전후의 주소 표시줄은 변경되지 않습니다. 이때 현재 페이지를 새로 고치면 다시 전송됩니다. 데이터 수정 요청이 있기 때문에 일부 사람들은 페이지를 새로 고친 후 데이터를 추가합니다.
두 번째 방법으로 데이터를 전송하는 방법:
1. 세션을 선택할 수 있지만 두 번째 파일에서 삭제할 수 있습니다.
2. "add.htm?id=122"
리디렉션할지 전달할지 선택하는 방법은 무엇입니까? 일반적으로 전달이 더 빠르고 요청에 개체를 유지할 수 있으므로 이것이 첫 번째 선택입니다. 그러나 전달 후에도 브라우저의 URL은 여전히 시작 페이지를 가리키므로 현재 페이지를 다시 로드하면 시작 페이지가 다시 호출됩니다. 이런 일이 발생하는 것을 원하지 않으면 전달을 선택하세요.
관련 튜토리얼: 프런트엔드 비디오 튜토리얼
위 내용은 웹 개발에서 전달과 리디렉션의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!