Servlets 在WEB-INF下移动资源

Servlets 在WEB-INF下移动资源,servlets,web.xml,web-inf,Servlets,Web.xml,Web Inf,我有一个包含数百个HTML、JavaScript和图像文件的web应用程序。这些文件位于根目录下: my_root-- -- html -- js -- images 这些文件夹包含一些子文件夹 出于安全原因,我需要将所有这些资源移动到WEB-INF文件夹下,这样它们就不会被直接访问 目前JSP和servlet文件已经在WEB-INF文件夹下 对于我来说,安全地移动WEB-INF下的所有HTML/JavaScript/images文件夹,而不中断这些文件夹中的所有链接/

我有一个包含数百个HTML、JavaScript和图像文件的web应用程序。这些文件位于根目录下:

my_root--
    -- html
    -- js
    -- images
这些文件夹包含一些子文件夹

出于安全原因,我需要将所有这些资源移动到WEB-INF文件夹下,这样它们就不会被直接访问

目前JSP和servlet文件已经在WEB-INF文件夹下

对于我来说,安全地移动WEB-INF下的所有HTML/JavaScript/images文件夹,而不中断这些文件夹中的所有链接/转发到这些文件夹中的资源,并确保这些资源不可直接访问,最简单的方法是什么


我使用的是WebSphere和WebLogic服务器。

您可以使用非常简单的工具,如记事本+,并使用findAndReplace功能。Eclipse也可以做到这一点,但要有效地找到每一个引用会变得很棘手

请注意,还有其他方法可以阻止用户访问您的图像。把东西放在原处并指示websphere停止从images文件夹提供这些图像可能更容易

对于我来说,安全地移动WEB-INF下的所有html/js/images文件夹,而不中断这些文件夹中的所有链接/转发到这些文件夹中的资源,并确保这些资源不可直接访问,最简单的方法是什么

你犯了个偷窃的错误。HTML/JS/image(和CSS)资源无论如何都需要直接访问。对于JSP,情况有所不同,其中一些(如果不是全部的话)需要由servlet进行预处理(例如,从DB中检索一些列表以显示在表中)。如果这些JSP是直接访问的,那么servlet步骤将被完全跳过,这绝对不是您想要的(JSP最终是“空的”;没有来自DB的任何数据)。这就是为什么它们应该隐藏在
/WEB-INF
中,以防止在不首先通过预处理servlet的情况下直接访问。此外,对于基于servlet的MVC框架,这样整个MVC框架过程(收集请求参数、转换/验证它们、更新模型值、调用操作等)将被跳过


您的具体功能需求并不十分明确(整个问题本身毫无意义;答案只是“不要那样做”),但如果您真的想将不需要servlet预处理的静态资源的访问限制为仅限于某些用户,那么您需要实现一个身份验证/登录系统。您可以使用容器管理的身份验证或homegrow a
过滤器来实现此目的。

您能否给出一个简单的示例来帮助您更清楚地说明这一点-您的意思是要通过将“/examplepage.jsp”移动到WEB-INF来阻止用户访问它?用户当前如何访问页面?您是否使用Struts等框架?我对使用notepad++等非常简单的工具并使用findAndReplace功能的建议感到失望
:-(这是一个非常糟糕的主意,我想为什么@Kowser?1.它不能保证所有链接都会被修复2.它可能会取代对某些资源的重要
硬编码
引用,这并非意外