0

jetty maven プラグインを使用して、goal を実行しておもちゃのプロジェクトを開発していjetty:runました。ここで、Tomcat での動作を確認することにしました。

header.jspf私は 2 つのjspf フラグメントを持っています:すべての jsp ページに共通のコードを含んでいますfooter.jspfWEB-INF/jspf/次のようなフラグメントを含めます。

<jsp:include page="WEB-INF/jspf/header.jspf" flush="true">
    <jsp:param name="pageTitle" value="Customer registration"/>
</jsp:include>

Jetty はそれらを動的フラグメントのように処理しましたが、Tomcat はそれらを静的テキストとして処理しました。そのため、次のことがわかります。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

私のブラウザのウェブページの最初に。tomcat の問題は、名前を *.jspf から *.jsp に変更することで簡単に解決されました。問題は、なぜ異なるサーブレット コンテナの動作が異なるのかということです。Tomcat 8/9 と jetty 9.3.7 でテストを実行しました。

4

1 に答える 1

1

mywebapp/WEB-INF/web.xml ファイルに新しいファイル拡張子を追加します。Tomcat がこのデフォルトを行わない理由はわかりません。デフォルトは conf/web.xml ファイルにあり、編集することもできます。別のサーブレット エンジンは別のサーブレット名を使用する場合があるため、これは Tomcat のみのソリューションです。

<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jsp</url-pattern>
    <url-pattern>*.jspf</url-pattern>
</servlet-mapping>
于 2016-02-06T00:18:44.643 に答える