检索servletcontext路径

时间:2012-09-30 03:45:57

标签: jsp servlets

我使用Netbeans 7开发我的web项目。我需要将从客户端收到的图像存储到web / images文件夹。

String location = getServletContext().getRealPath("/images"); 

如果我使用此代码,我会获得位置

C:\Users\Computer\Documents\NetBeansProjects\test\build\web\images

但我需要存储

 C:\Users\Computer\Documents\NetBeansProjects\test\web\images

我需要稍后在我的jsp页面中显示这些图像,这样那些图像必须在web \ images文件夹中才不是它...... ....

1 个答案:

答案 0 :(得分:0)

您是否绝对有必要将它们存储在部署文件夹中?如果人们上传图片,通常最好将它们存储在数据库中。 (如果它们很小)或者在与部署分开的目录中。将它们存储在部署中将导致每次需要重新部署时都将其删除。如果你选择我建议的路线,你需要编写一个简单的servlet,它能够重新提供客户提交的图像,无论你在哪里存储它们。

如果您使用的是tomcat,则可以将文件存储在任何您喜欢的位置。然后创建一个过滤器,通过将以下内容添加到server.xml文件,将所有请求传递到定义的URL到主机上的特定目录:

<Context path="/clientrequestpath/images" docBase="/serverpath/images/" />

其中path是浏览器发送的请求URL,docBase是您在主机上本地存储图像的位置。在这种情况下,您不需要编写servlet,只需将存储在数据库中的图像名称添加到jsp中发送到客户端的标记中,然后客户端就会自动请求图像文件。