기본 페이지에 iframe과 텍스트 상자 (필수 URL을 입력)가 있으므로 사용자가 필수 URL을 입력하면 요청한 페이지를 iframe에로드합니다. doGet
을 통해 get 요청을 처리하는 데 HttpServlet
을 사용하고 있습니다. 요청한 내용 유형을 구별 할 필요가 있습니다. 파일 (img 또는 script) 인 경우 방금 읽고 읽었으므로, html 페이지 인 경우 약간 수정합니다. doGet
안에 request.getContentType()
을 사용하려고 시도했지만 null
을 반환합니다. 이렇게 할 방법이 있습니까? 고마워요doGet에서 요청한 콘텐츠의 유형을 결정하십시오.
답변
HttpServletRequest#getContentType()
은 Content-Type
헤더의 값을 반환합니다.
요청을 보낼 때 지정해야합니다. Javascript를 사용하면이 작업을 수행 할 수 있습니다.
이상적으로 콘텐츠 문자열을 힌트로 표시하기 위해 쿼리 문자열 매개 변수를 사용할 수도 있지만 이상적이지는 않습니다.
요청 본문의 콘텐츠 유형을 가져 오는 것입니다. 당신이 응답이을해야하는지 콘텐츠를 지정하려면
, 당신은 적절한 미디어 타입으로 Accept
헤더를 지정해야합니다.
URL 확장명을 매칭 할 수도 있습니다. 예를 들어 www.host.com/some/path.xml
은 XML을 반환합니다.
요청 내용 유형을 알고 싶습니까, 당신은 당신의 요청에 대한 귀하의 URL을 확인하지 않습니다. 요청에 데이터가 없으면 request.getContentType
은 null 값을 반환해야합니다. 요청하지 않고 응답 할 수 있습니다. Mabye 매개 변수를 전달하면 원하는 응답을 정의 할 수 있습니다. 응용 프로그램의 동작을 결정하기 위해 응답 유형을 확인해야 할 필요가없는 응답 유형에 따라 달라집니다. 간단한 GET 요청은 응답을 대기합니다. 그리고 그 반응을 토대로 몇 가지 행동을하십시오.
본문에 데이터가 포함 된 경우에만 request.getContentType()
메서드가 값을 반환합니다. 그것은 GET이므로 어떤 몸도 포함하지 않습니다. 데이터가있는 경우 URL의 일부이거나 URL에 첨부 된 쿼리 문자열입니다. GET 요청에 Content-type
을 선언하면 무의미하므로 읽을 헤더가 없습니다.
요청 URL에서 필요한 데이터를 찾아야합니다.
링크 또는 이미지에서 생성 된 URL 인 경우 URL에서 이름과 확장자를 가져옵니다.
스크립트로 생성되었으므로 쿼리 문자열 (예 : ?file-name=xyz&file-type=png
)의 변수 나 추가 경로 정보 (예 : /servlet/xyz/jpeg
)와 같은 다른 위치에 정보가있을 수 있습니다. 클라이언트가 데이터를 요청하는 방법에 따라 다릅니다.
- 1. 자식 개체의 유형을 결정하십시오
- 2. GCC 런타임에 void * 유형을 결정하십시오.
- 3. 런타임에 제네릭 클래스의 유형을 결정하십시오.
- 4. iOS, 네트워크 액세스 유형을 결정하십시오.
- 5. C#에서 목록 유형을 결정하십시오
- 6. 컴파일시에 __VA_ARGS__에서 인수 유형을 결정하십시오.
- 7. 대응하는 2 세트의 유형을 결정하십시오
- 8. 컨트롤러의 OnException에서 결과 유형을 결정하십시오.
- 9. 프로그래밍 방식으로 라우터 NAT 유형을 결정하십시오.
- 10. RSpec - 프로그래밍 방식으로 사양 유형을 결정하십시오.
- 11. 스키마에서 요소 및 속성의 기본 유형을 결정하십시오.
- 12. C++에서 상속 객체의 유형을 결정하십시오.
- 13. 리눅스에서 기존 소켓 핸들 유형을 결정하십시오.
- 14. 리플렉션을 통해 클래스 멤버 유형을 결정하십시오.
- 15. 이미지 스트림을 사용하여 확장 유형을 결정하십시오.
- 16. Express.js 서버의 올바른 파일 유형을 결정하십시오.
- 17. Java에서 주어진 파일의 파일 시스템 유형을 결정하십시오.
- 18. 초기화되지 않은 개체에서 필요한 개체 유형을 결정하십시오.
- 19. ASP.NET MVC에서 요청한 데이터 유형을 기반으로하는 라우팅
- 20. nuget - 내 패키지를 설치하기 전에 프로젝트 유형을 결정하십시오.
- 21. Django - 템플릿 태그에 전달 된 변수의 필드 유형을 결정하십시오.
- 22. Custom Wpf Lookless Contol ... 동적으로 제어 유형을 결정하십시오.
- 23. YouTube 동영상 메타 데이터에서 소스 기기의 유형을 결정하십시오.
- 24. SQLite, CSV 또는 Excel에서 스키마 필드 유형을 결정하십시오.
- 25. 3 진 (?)에 따라 var 유형을 결정하십시오. int 배열의 연산자
- 26. 자바 스크립트 또는 jquery를 통해 사용자의 인터넷 연결 유형을 결정하십시오.
- 27. 스프링 서비스가 클라이언트가 요청한 컨텐츠 유형을 반환하는 이유는 무엇입니까?
- 28. 할당 된 '핸들'유형을 결정하십시오.
- 29. 콘텐츠의 지연로드
- 30. 바이트의 패턴을 결정하십시오.
첫 번째 요청이 전송되면 (www.example.com) 모든 URL (href, src, ..)이 수정되므로 GET을 통해 리소스를 다운로드 할 때 내 서블릿이 트리거됩니다. doGet에서 요청한 리소스의 유형을 알아야합니다. 이렇게하는 가장 좋은 방법은 doGet 내부의 URL을 파싱하는 것입니다. – akmal
@akmal 요청 본문의 내용을 가져 오시겠습니까? 가장 좋은 방법은'Content-Type' 헤더를 보내는 것입니다. –
@akmal GET 요청 본문에 콘텐츠를 보내지 마십시오. –