그 페이지는 앞으로 RequestDispatcher
의 방법을 사용하여 액세스 할 수 있습니다. sendRedirect
의 문제는 무엇입니까? WEB-INF
에서WEB-INF 아래의 JSP 페이지를 sendRedirect 메소드로 액세스 할 수없는 이유는 무엇입니까? WEB-INF 아래
답변
페이지는 웹 응용 프로그램 외부에서 액세스 할 수 없습니다.
이제 HttpServletResponse#sendRedirect()
를 사용하기 때문에, 새로운 요청이 클라이언트에 의해 생성되므로 요청은 실제로 브라우저에서 전송되는, 따라서 당신은 sendRedirect
에 경로에 WEB-INF
을 가질 수 없습니다. RequestDispatcher
의 경우
, 방법 - forward()
및 include()
은, 오히려이 /가 가장 아마도 서블릿에서 다른 페이지를 포함하려면 앞으로 에 같은 요청을 사용하여 새 요청을 생성하는 클라이언트를 요구하지 않습니다 컨트롤러. 웹 응용 프로그램 내부에서만 액세스하므로 파일에 대한 경로를 WEB-INF
아래에 지정할 수 있습니다.
WEB-INF
디렉토리는 웹 응용 프로그램의 개인 영역이므로 WEB-INF
디렉토리 아래의 모든 파일은 URL을 지정하여 브라우저에서 직접 액세스 할 수 없습니다. 웹 컨테이너는이 디렉토리의 내용을 제공하지 않습니다. 그러나 WEB-INF
디렉토리의 내용은 응용 프로그램 내의 클래스/서블릿에서 액세스 할 수 있습니다.
sendRedirect()
새 브라우저 request
을 만듭니다. 리디렉션은 헤더를 다시 브라우저/클라이언트로 보냅니다. 이 헤더에는 브라우저에서 리디렉션 할 URL이 들어 있습니다. 그런 다음 브라우저는 주어진 URL에 대한 새로운 요청을 시작합니다. include()/forward()
같은
RequestDispatcher
방법은 내부적으로 작동합니다. 호출이 이루어진 곳에서 서버 내에서 사용 가능한 자원에/전달합니다. 이러한 제어의 이전은 컨테이너에 의해 내부적으로 수행되며 브라우저/클라이언트는 관련되지 않습니다.
특별한 디렉토리는 "WEB-INF"라는 응용 프로그램 계층 내에 존재 읽어보십시오. 이 디렉토리에는 문서 루트 응용 프로그램과 관련이없는 모든 응용 프로그램이 포함되어 있습니다. 대부분의 WEB-INF 노드는 공개 문서 트리의 일부가 아닙니다. WEB-INF/lib 디렉토리에있는 JAR 파일의 METAINF/ 자원에 패키지 된 정적 자원과 JSP를 제외한 WEB-INF 디렉토리에있는 다른 파일이 클라이언트에 직접 제공되지 않을 수 있습니다. 컨테이너. 그러나, WEB-INF 디렉토리의 내용은의 getResource를 사용하여 코드 서블릿에 볼 수 있습니다과 같이 getResourceAsStream 방법은 의 ServletContext에 호출하고, RequestDispatcher의 호출을 사용하여 노출 될 수 있습니다.
RequestDispatcher
앞으로 방법은 클라이언트 브라우저에 요청 파견에 대해 아무것도 말하지 않고 다른 서블릿 또는 JSP에 대한 요청의 제어를 전달합니다.따라서 서버 측에서는 요청 발송이 완전히 이루어 지므로 요청의 추가 처리를 중지하고 URL 상태 코드 "301"와 클라이언트 브라우저로 리디렉션 될 위치의 URL을 보내려면 경로
sendRedirect
메서드를 지정할 수 있습니다. 응답 헤더. 리디렉션 관련 HTTP 헤더를 클라이언트 브라우저로 보낸 후 서버가이 요청을 제어 할 수 없습니다. 클라이언트 브라우저는 http 상태 301을보고 서버가 설정 한 "위치"http 헤더의 URL에 새로운 요청을 보내야한다는 것을 알고 있습니다. 클라이언트 브라우저는 새 URL로 새 요청을 보내고 다른 일반 요청으로 서버에서 처리합니다. 따라서 sendRedirect는 클라이언트 브라우저를 통해 처리되므로 경로 지정이 작동하지 않습니다.
- 1. Weblogic fastswap webinf/lib 모듈
- 2. 대해 sendRedirect JSP
- 3. 폴더에 갑자기 액세스 할 수없는 이유는 무엇입니까?
- 4. jsFiddle에서 페이지를 모방 할 수없는 이유는 무엇입니까?
- 5. Tomcat 서버의 EAR에 Spring jar를 추가 할 수 없습니다. 참고 : 나는 WEBINF/lib 디렉토리에 모든 단지를 추가 한
- 6. 내가 IPackageFragmentRoot에 액세스 할 수없는 이유는 무엇입니까?
- 7. NSEvent에 액세스 할 수없는 이유는 무엇입니까?
- 8. 열을 이름으로 액세스 할 수없는 이유는 무엇입니까?
- 9. CSS 선택기에 액세스 할 수없는 이유는 무엇입니까?
- 10. UIImageview.center에 액세스 할 수없는 이유는 무엇입니까?
- 11. 내 방법에 액세스 할 수없는 이유는 무엇입니까?
- 12. 인덱스가있는이 배열에 액세스 할 수없는 이유는 무엇입니까?
- 13. 회원에 액세스 할 수없는 이유는 무엇입니까?
- 14. 수업에서이 속성에 액세스 할 수없는 이유는 무엇입니까?
- 15. int로지도 키에 액세스 할 수없는 이유는 무엇입니까?
- 16. DependencyProperty에 액세스 할 수없는 이유는 무엇입니까?
- 17. 컨트롤러에서이 도우미에 액세스 할 수없는 이유는 무엇입니까?
- 18. Gracenote에서 CoverArt에 액세스 할 수없는 이유는 무엇입니까?
- 19. 클래스에서 공용 메서드에 액세스 할 수없는 이유는 무엇입니까? (자바)
- 20. 공개 프로필 정보에 액세스 할 수없는 이유는 무엇입니까?
- 21. $ _SESSION [USERID]에 액세스 할 수없는 이유는 무엇입니까?
- 22. 세션 변수를 메소드 외부에서 액세스 할 수없는 이유는 무엇입니까?
- 23. 내 'my` 변수가 하위 내에서 액세스 할 수없는 이유는 무엇입니까?
- 24. 플라스크에서 직접 액세스 할 수없는 페이지를 만드는 방법은 무엇입니까?
- 25. JSP 페이지를 session = "false"지시자로 설정하는 이유는 무엇입니까?
- 26. Drupal6 관리자 또는 페이지에 액세스 할 수없는 이유는 무엇입니까?
- 27. JSP - jsp 페이지를 종료 할 때 알리기
- 28. 세션 저장소 JSON에서 '여권'필드에 액세스 할 수없는 이유는 무엇입니까?
- 29. 앨리어스 된 Model 객체가 JSP 포함에서 액세스 할 수없는 이유는 무엇입니까?
- 30. ajax 호출 후 다른 페이지를 탐색 할 수없는 이유는 무엇입니까?
감사합니다. 아름답게 설명되어 있습니다. – user2610044
@ user2610044. 당신은 환영합니다 :) –
안녕하세요 Rohit ..이 책은 SCJP에 대해 제안합니까 ..? – user2610044