我正在编写一个JSP应用程序,该应用程序应允许用户登录(使用简单的用户名和密码检查对PostgreSQL数据库进行身份验证),并上传照片。图像应该是私有的,因为它们只能在用户登录时访问。注销后图像URL的副本不起作用。如何用Tomcat / JSP完成?
我不想将BLOB存储在我的数据库中。
答案 0 :(得分:2)
答案 1 :(得分:1)
首先将图像存储在服务器上无法访问的文件夹中。
每当用户请求特定图像时 - 您将用户重定向到另一个接受图像请求的servlet。
此servlet将检查会话以查看用户是否已通过身份验证,并且该用户是请求该图像的用户,并且该用户可以访问该图像。
一旦servlet对用户和请求进行身份验证,它就会将图像复制到临时可访问文件夹,并将用户重定向到该图像。
您可以添加一些改进,例如在复制之前检查图像是否已经存在于临时文件夹中,以及"清洁作业"如果文件是在一个多小时前复制的,那么每小时运行并从临时文件夹中删除文件(您可以"触摸"您复制的任何文件)等。
还有两点:
sendRedirect()
相比),用户将无法在地址栏中看到图像的静态链接。