java:如何在jboss平台中隐藏静态资源,如html,用户图像?

时间:2009-11-20 07:03:45

标签: java tomcat jboss static-resource

我开发了一个java 1.4 Web应用程序。应用程序部署在jboss(tomcat)上。

假设我的文件夹结构是

   mainfolder(contains subfolders and jsp pages)
        images(contains all of images files)
        headerfiles(header files)
        javascript(javascript files)

网站登录页面的网址是

     mywebsite.com/mainfolder/login.jsp

如果用户为某些静态资源键入完整的URL

     mywebsite.com/mainfolder/images/myimage.jpeg

然后他可以在这个网址上查看图片。

我想阻止用户查看这些资源。我该怎么办?

是否有某种方式来规定我不希望用户看到的文件名模式。 在这种情况下,我可以指定要隐藏的* .ssi模式。

3 个答案:

答案 0 :(得分:5)

如果您的网页中使用了这些图片,则用户必须能够下载这些图片才能看到它们。

这是基本的HTTP。如果要下载资源,则需要访问该资源。

阻止您的用户访问mywebsite.com/mainfolder/images/myimage.jpeg将意味着您将无法在HTML或CSS中使用此图片。

如果这些文件不应该对用户可用,而只对服务器可用,则不要通过将它们保存在未发布的文件夹中来发布它们。

答案 1 :(得分:1)

浏览器无法直接访问webapp的WEB-INF目录下的任何内容。

答案 2 :(得分:1)

  

我想阻止用户查看这些资源。我该怎么办?

老实说,这没有任何意义。客户端如何能够获取静态数据?您可以将这些文件放在/WEB-INF(未发布的文件夹)中以隐藏它们直接访问,但是您永远不能在JSP页面中使用它们,因为客户端不再能够直接访问它。

我认为这里最大的误解是你没有意识到每个图像,CSS文件,JS文件等都将每个图像都视为一个完全独立的HTTP请求。完整的网站不是由单个HTTP请求拖运的。