1

内の「jsp」というフォルダに JSP ページがありますWEB-INF。これらのページにはいくつかの JavaScript ファイルが必要です。JSP ページでは、javascript ファイルが呼び出されます

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

ただし、ブラウザはこのリソースにアクセスできません。web-inf 内の JSP ページへのすべての要求はアクションを通過し、そのページには「secure」と呼ばれる別の名前空間も与えられています。

たとえば、この account.jsp ページには、「web」フォルダー内の「app.lib」というフォルダー (web-inf の外) にある JavaScript ファイルが必要です。

(1) struts アクションまたは別の jsp 機能を使用して、その JavaScript ファイルを account.jsp ページに取得する方法を知りたいです。
(2) 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 ページは、サーブレット コンテナーによってアクセスされ、処理されてから、WEB-INF 内のファイルにアクセスできるサーブレットを介してクライアントにレンダリングされます。JavaScript ファイルはクライアント側のリソースであり、クライアント側は WEB-INF 内のリソースにアクセスできないため、そのフォルダーの外に配置する必要があります。

通常、次のように、JavaScript ファイルを「js」というフォルダーに配置するのが一般的です。

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

余談ですが、JavaScriptはクライアント側なので、わざわざWEB-INFフォルダに格納してサーブレットエンジンで処理したとしても、どのユーザーでもリソースURLにアクセスして閲覧できてしまいます。起源。基本的に、これによるメリットはなく、メンテナンスと追加の開発オーバーヘッドの両方でコストが発生するだけです。

于 2012-06-24T21:22:05.250 に答える