次の構造のプロジェクトがあるとします。
ウェブ 記事 main.jsp sidearts.jsp 中央.jsp フォーラム main.jsp css js WEB-INF web.xml
この時点ではまだフロントコントローラーがないことに注意してください。
いくつかのファセット(「asdf」としましょう)を使用してデプロイした後、次のURLを使用してページにアクセスできます。
http:// localhost:8080 / asdf / articles / main.jsp http:// localhost:8080 / asdf / forum / main.jsp 等々..
main.jspはいくつかのhtmlを生成し、sidearts.jspを含みます(jstl c:importまたはその他の方法で)
そして、フロントコントローラーを追加するとどうなりますか?
いくつかのリクエストのディスパッチを担当し、次のマッピング を持つサーブレットArticlesControllerがあるとします。
<servlet>
<servlet-name>ArtsController</servlet-name>
<servlet-class>org.forstackoverflow.ArticlesController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ArtsController</servlet-name>
<url-pattern>/articles/*</url-pattern>
</servlet-mapping>
これで、URLをリクエストするhttp://localhost:8080/asdf/articles/main
と、ArticlesControllerがこのリクエストを処理し、articles/main.jspを含めようとします。そして、この時点で、/ articles / *がArtsControllerにマップされているため、無限サイクルが開始されます。
説明されている問題の正しい解決策は何ですか?
私の変種は次のとおりです。
1)すべてのjspファイルのマッピングを作成します(受け入れられるとは思いません)
2)ディレクトリ名を変更します(articles-> arts); しかし、その後、(のような)多くの新しいURLを取得http://localhost:8080/asdf/arts/main.jsp
し、それがバグの原因になる可能性があると思います。