request.getHeader ("User-Agent")가 Null 포인터 예외를 throw 할 수 있는지 여부를 확인하고 싶으면 NPE를 throw하는 경우가 무엇인지 확인하고 싶습니다.request.getHeader ("User-Agent")가 npe를 던졌습니다.
답변
물론 사전에
<% if (request.getHeader("User-Agent").toLowerCase().indexOf("msie") != -1) { %>
덕분에, 가능성은 "사용자 에이전트"헤더의 모든 종류를 보내 해달라고 할 수있다. 이 경우 코드에서 NPE를 throw합니다. request.getHeader("User-Agent")
== null => null에는 toLowerCase()
메서드가 없습니다.
: <% if (request.getHeader("User-Agent") != null && request.getHeader("User-Agent").toLowerCase().indexOf("msie") != -1) { %>
브라우저가 서버에 자신을 소개하는 방법을 결정, 당신이 원하는대로 텍스트에 사용자 에이전트를 변경할 수 gazillion 브라우저 애드온있다. 또 다른 예로, 당신의 인터넷 게이트웨이는 확실하게 그것을 통해 오는 모든 http 패킷으로부터 user-agent
을 변경/제거 할 수 있습니다.
request.getHeader("User-Agent")
User-Agent
헤더가 클라이언트에서 전송되지 않은 경우 (필수는 아니지만) null
을 반환 할 수 있습니다. 에 코드를 변경합니다
String userAgent = request.getHeader("User-Agent");
if (userAgent != null && userAgent.toLowerCase().indexOf("msie") != -1)
아니,
request.getHeader("User-Agent")
가
NPE
을 던져해서는 안됩니다, 그것은 그러나
NPE
를 통해이 경우 코드는 것에
null
을 반환 할 수 있습니다.
브라우저 나 클라이언트의 대부분이있는 경우, request.getHeader("User-Agent")
가 널 안 User-Agent header
을 보내
이것은 request.getHeader ("User_Agent")가 null이므로 null ponter 예외가 발생합니다. 즉, 요청 헤더에 user-agent가있는 속성이 없습니다. – user1430423
예. 그래서 귀하의 질문에 대한 대답은 "아니오"입니다 - 당신의 의도 된 질문에 대한 대답은 "예"입니다 (그것은 null을 돌려 줄 수 있습니다). – esej
요청이 null 인 경우 어떻게됩니까? :) – anotherdave
(나는 믿고있어 요청 HTTPServletRequest
또는 유사한의 인스턴스입니다).
그러나 일부 클라이언트/브라우저는 User-Agent header
을 전송하지 않을 수 있으며,이 경우 코드가 NPE를 전송할 수 있습니다.
null 대소 문자를 처리해야합니다.
- 1. JavaCompiler, StandardJavaFileManager가 NPE를 던졌습니다.
- 2. Glassfish - 관리 콘솔을 열 수 없음 - NPE를 던졌습니다.
- 3. 안드로이드가 간단한 "빈 데이터베이스"기능을 만들려고하는데, NPE를 던졌습니다.
- 4. 어떤 UserAgent가 프로그램을 보내고 있습니까
- 5. Mockito - 기본 Matcher를 일치 시키려고 할 때 Custom Matcher가 NPE를 던졌습니다.
- 6. jstl에서 NPE를 사용하는 이유는 무엇입니까?
- 7. request.getHeader ("referer"), 뒤로 버튼보다 페이지를 다시로드하십시오.
- 8. 사용자가 얼마나 신뢰할 수 있는가 request.getHeader ("Referer");
- 9. request.getHeader (문자열 값)의 매개 변수 목록
- 10. 최대 절전 모드는 nullpointerexception을 던졌습니다
- 11. 반사를 사용하는이 방법이 왜 npe를 던집니까?
- 12. UserAgent가 iOS로 설정된 경우 Sencha Touch 2.1 무한 로딩 화면
- 13. 공유 모듈이 앱을 던졌습니다
- 14. ResultSetImpl이 NullPointerException을 던졌습니다.
- 15. phpmailer가 mysql 오류를 던졌습니다
- 16. 는 NullPointerException이에게 던졌습니다
- 17. 오디오 파일이 IllegalStateException을 던졌습니다
- 18. Hibernate는 org.hibernate.persister.entity.SingleTableEntityPersister를 던졌습니다.
- 19. 내비게이션이 센터에서 이미지를 던졌습니다
- 20. 왜 던졌습니다 java.lang.classCastException
- 21. nhibernate/fluenthibernate 던졌습니다 StackOverflowException
- 22. 디자이너가 오류를 던졌습니다!
- 23. 안드로이드 draw9patch 던졌습니다 NoClassDefFoundError
- 24. performSelector가 UIViewControllerHierarchyInconsistency 예외를 던졌습니다
- 25. XmlRpcStreamServer가 org.xml.sax.SAXParseException을 던졌습니다.
- 26. Spring CrudRepository가 org.hibernate.LazyInitializationException을 던졌습니다.
- 27. struts 1이 org.hibernate.TransientObjectException을 던졌습니다.
- 28. 문자열의 비교는 NullPointerException을 던졌습니다.
- 29. __NSAutoreleaseNoPool SWING 신청서에 던졌습니다.
- 30. android - MediaRecorder가 illegalstateexception을 던졌습니다
빠른 응답을 보내 주셔서 감사합니다. 헤더 사용자 에이전트 속성이 null 인 시나리오를 제안 해 주시겠습니까? – user1430423
브라우저가 서버에 자신을 소개하는 방법을 결정하면 원하는 텍스트로 사용자 에이전트를 변경할 수있는 gazylion 브라우저 추가 기능이 있습니다. 또 다른 예로, 인터넷 게이트웨이는 반드시 사용자 에이전트를 통해 오는 모든 http 패킷에서 사용자 에이전트를 변경/제거 할 수 있습니다. – IProblemFactory
JSP에서는 null 체크를해서는 안되지만 다음과 같이 작성해야합니다. if! empty request.getHeader ("User-Agent")' –