나는 Struts 2.1.2와 Hibernate 3.2.6.GA를 사용하여 웹 애플리케이션을 개발 중이다. 엔티티가 User
이고 최대 절전 모드를 사용하는 DB에 USERS
테이블로 매핑되었습니다. DB에 BLOB
으로 저장하려는이 엔티티와 관련된 이미지를 갖고 싶습니다. 또한 User
의 다른 속성과 함께 웹 페이지에 이미지를 표시하려고합니다.Struts 2 + Hibernate 3을 사용하여 이미지를 브라우저에 제공하는 방법은 무엇입니까?
내가 생각할 수있는 해결책은 IMAGES(ID, IMAGE)
IMAGE
이 BLOB
인 테이블을 갖는 것입니다. USERS
은 테이블을 가리키는 IMAGEID
이라는 FK
열을 갖습니다. 그러면이 IMAGEID
에 매핑 된 imageId
이라는 엔티티를 User
엔티티에 매핑 할 것입니다. JSP로 페이지를 렌더링 할 때, 이미지를 <img src="images.action?id=1"/>
등으로 추가하고, 이미지를 읽고 브라우저에 컨텐츠를 스트리밍하는 헤더가있는 이미지를 오랫동안 캐시하도록 설정 한 액션이 있습니다.
이 방법이 유용할까요? DB에 저장된 이미지를 렌더링하는 더 좋은 방법이 있습니까? DB에 이러한 이미지를 저장하는 것이 처음부터 올바른 접근 방식입니까?
이 메커니즘을 사용하여 구현했습니다 (서블릿 대신 ServletResponseAware 작업 사용). 나는 다른 메커니즘이 생길 수 있기를 희망하는 대답으로 이것을 골라 내지 않을 것이다. 나는 이것이 지금까지 가장 잘 알려진 대답이기 때문에 이것을 upvoted했습니다. –