Java 서블릿에는 여러 가지 페이지 점프 방법이 있습니다. 필요한 친구는
서블릿:
물론 서블릿에서는 doGet, doPost 및 기타 방법에서 일반적인 점프가 발생합니다. 안에.
1) 리디렉션 방법
response.sendRedirect("/a.jsp");
페이지 경로는 상대 경로입니다. sendRedirect는 반드시 이 웹 애플리케이션에만 국한되지 않고 모든 페이지로 이동할 수 있습니다.
response.sendRedirect("http://www.jb51.net");
브라우저 주소 점프 후 바가 변경됩니다.
이런 방식으로 값을 전달하려면 매개변수를 URL로 가져오거나 세션에 넣는 것만 가능합니다. request.setAttribute를 사용하여 전달할 수는 없습니다.
2) 전달 방법
RequestDispatcher Dispatcher = request.getRequestDispatcher("/a.jsp");
dispatcher .forward(요청, 응답);
페이지 경로는 상대 경로입니다. 전달 방법은 이 웹 애플리케이션의 페이지로만 이동할 수 있습니다.
점프 후에도 브라우저 주소 표시줄은 변경되지 않습니다.
이 방법을 사용하여 값을 전달할 수 있습니다: 매개변수가 있는 URL, 세션, request.setAttribute
JSP:
1) response.sendRedirect( );
은 서블릿의 response.sendRedirect()와 동일합니다.
이 문 앞에는 Out.flush()가 허용되지 않습니다. 있는 경우 예외가 발생합니다.
java.lang.IllegalStateException: 데이터가 커밋된 후에는 sendRedirect()를 사용할 수 없습니다.
com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)
...
브라우저 주소 표시줄은 다음 이후에 변경됩니다. 점프
다른 호스트로 점프하려는 경우 점프 후 이 명령문 뒤의 명령문은 마치 새 스레드가 열린 것처럼 계속 실행되지만 응답 작업은 의미가 없습니다.
동일한 호스트로 점프하려는 경우 이 명령문 뒤의 명령문은 실행이 완료될 때까지 점프하지 않습니다. 2) response.setHeader("Location","");out.flush()가 있기 전에는 이 명령문을 사용할 수 없습니다. 그렇다면 페이지가 점프하지 않습니다. 점프 후 브라우저 주소 표시줄이 변경됩니다이 명령문 다음에 나오는 명령문이 실행될 때까지 점프가 발생하지 않습니다
위 내용은 Java 서블릿의 여러 페이지 점프 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!