1

.js 文件中名为“jsp”的文件夹中有 JSP 页面WEB-INF。这些页面需要一些 javascript 文件。在 JSP 页面中,调用 javascript 文件

<script type="text/javascript" src="../../app.lib/jQuery-v-1-7-2.js"></script> 

但浏览器无法访问此资源。对 web-inf 中 JSP 页面的所有请求都经过一个操作,并且还为那些称为“安全”的页面提供了单独的名称空间。

可以这么说,这个 account.jsp 页面需要一个 javascript 文件,该文件位于 'web' 文件夹内名为 'app.lib' 的文件夹中。(out of web-inf)。

(1) 我想知道一种使用 struts 操作或其他 jsp 功能将该 javascript 文件检索到 account.jsp 页面的方法。
(2)第二个问题是:假设有图像应该被保护,并且应用程序本身应该能够在请求时将它们发送到浏览器。换句话说,WEB-INF文件夹内的图像,那么如何我在 account.jsp 中访问它们?
这是 web.xml(删除了会话配置和欢迎文件列表标签以便清晰查看)
<?xml version="1.0" encoding="UTF-8"?> <web-app.......>
<filter> <filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

这是项目结构
在此处输入图像描述

4

1 回答 1

-1

不要将 JavaScript 文件放在 WEB-INF 文件夹中。保存在 WEB-INF 中的 JSP 页面由 servlet-container 访问、处理,然后通过 servlet 呈现给客户端,该 servlet 可以访问 WEB-INF 中的文件。JavaScript 文件是客户端资源,由于客户端无法访问 WEB-INF 中的任何资源,因此它们必须位于该文件夹之外。

通常,将 JavaScript 文件放在名为“js”的文件夹中是很常见的,如下所示:

-/js
    - actions.js
-/WEB-INF
    - /jsp
        - abc.jsp

顺便说一句,由于 JavaScript 是客户端,即使您将它们存储在 WEB-INF 文件夹中并使用 servlet 引擎处理它们,任何用户仍然可以访问资源 URL 并查看来源。从本质上讲,您不会从中获得任何好处,只会产生成本,包括维护和额外的开发开销。

于 2012-06-24T21:22:05.250 回答