2014-09-25 1 views
0

내 JSP/서블릿 설정에서 사용자 프로필 이미지를 표시하기 위해태그에 src 태그에 서블릿 URL을 지정하고 서블릿에서 응답으로 이미지를 반환하여 이미지를 서블릿에서 가져 오도록 지시합니다.이미지 소스가 서블릿 일 때 기본 이미지를 표시하는 방법은 무엇입니까?

Sevlet는

  1. 그것은
  2. 함께 response 객체의 byte []와
  3. 에서
  4. 반환 이미지를 이미지를 준비 BLOB 형식으로 데이터베이스에서 이미지를 가져, 이미지 요청을 수신에 가지 아래 수행 적절한 헤더.

내 문제는 가입 페이지에서 이미지 업로드 옵션이되지 않기 때문에 BLOBNULL 그래서 그래서 새로운 사용자 데이터베이스 즉 자신의 이미지가없는 것입니다. 이러한 모든 사용자에 대해 기본 이미지를 표시하려면 어떻게해야합니까?

편집 의견에 따라 나는 그 사실을 알고 싶었다. 데이터베이스 (사용자를 생성하는 동안)에서 기본값을 설정하거나 데이터베이스에 NULL이있을 때 기본 이미지 배열을 반환하는 솔루션을 알고 있습니다. 나는 이미 후자를 사용하고있다.이 질문을 통해 나는 단지 에 대한 다른 가능한 해결책 인에 대해 토론하고 싶었습니다.

+0

"새 사용자"를 위해 데이터베이스에 기본 이미지를 생성하고 저장해 보았습니까? – munyul

+0

그건 논리적으로 들리 겠지만, 나는 그들의 기본 이미지가 많은 데이터베이스를로드하는 대신에 다른 해결책으로 생각해야한다. – aProgrammer

+0

여러 가지 방법으로이 작업을 시도 할 수 있습니다. 예를 들어 null을 기본 그림으로 다운로드하는 경우 사용자 정의 그림을 다운로드 할 수 있습니다.) – Fincio

답변

1

사용자가 이미지가 없을 때 HTTP 오류 404 "찾을 수 없음"을 반환하는 옵션이있을 수 있습니다. 실제로는 사용자를위한 이미지가 없으므로 나에게는 매우 논리적 인 것처럼 보입니다. 서블릿은 사용자 이미지를 전송하고있는 경우 특별한 논리를하지 않습니다 이런 식으로

<img src="servletUrl" onerror="this.src='default.png'" width="150" height="150" /> 

:

public void doGet(HttpServletRequest request, HttpServletResponse response) { 
    response.sendError(HttpServletResponse.SC_NOT_FOUND); 
} 

그런 다음 당신의 HTML에 당신은 기본 이미지를 설정 onerror Event를 사용하여이 사건을 처리 할 수 ​​있습니다 사용자가 가지고 있지 않습니다.

+0

감사합니다. @Tobias .. 이것은 내가 찾고있는 것입니다. 당신의 대답을 수락하기 전에 다른 날 질문 할 것입니다. 어떤 사람이 더 좋은 해결책이 될지도 모릅니다. – aProgrammer

관련 문제