0

Tomcat を使用して Eclipse で開発された動的 Web アプリがあります。私の Web アプリケーション フォルダーは、次の構造を持つ WebContent です。

WebContent
   |_____WEB-INF
   |        |__ web.xml
   |___form.html
   |
   |___send.js

form.html ファイルは、次のように JavaScript ファイル send.js を参照します。

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="send.js"></script>

どちらも WebContent の同じルート ディレクトリにあります。form.htmlしかし、Eclipseでサーブレットを起動してブラウザで開いてみると。はsend.js実行されません。しかし、すべてをsend.js直接コピーform.htmlしてタグに入れると<script>...</script>、JavaScript コードが正しく実行されます。HTML ファイルにすべての JS コードを入れたくないので、send.js ファイルを HTML ファイルとは別にすることを好みます。では、JSファイルを実行させるにはどうすればよいでしょうか。

また、Jersey を RESTful Web サービスとして使用しており、web.xml サーブレット マッピングは次のとおりです。

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.example</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

send.jsJersey のサーブレット コンテナが Web ルート ディレクトリ (WebContent) でJavaScript ファイル ( ) を見つけられないのはなぜですか?

4

1 に答える 1

1

Jersey は RESTful メソッドのみを処理します。Jersey は他の Web リソースの提供を処理しません。そのためhttp://localhost:8080/myapp/rest/send.js、404 "Not Found" が返されます。

他の HTML、CSS、JavaScript、画像などのリソースを処理するには、別の<servlet>を定義する必要があります。私が取り組んでいるアプリケーションは、Faces Servlet を使用して JSF/Facelet ページだけでなく、JS、CSS なども提供していると思います。<servlet-mapping>web.xml

次に、ロードsend.jsする正しい URL は次のようになります。http://localhost:8080/myapp/send.js

于 2013-07-04T02:18:28.857 に答える