2

Tomcat 5.5 で実行されている Web アプリケーションに URL ルーティングを追加しようとしています。

main.jsp?type=test&group=info動的ページの URL をより親しみやすいものにしたいと考えていますmain/test/info

web.xmlに以下を設定しました

  <servlet>
    <servlet-name>main</servlet-name>
    <jsp-file>/main.jsp</jsp-file>
  </servlet>
  <servlet-mapping>
    <servlet-name>main</servlet-name>
    <url-pattern>/main/*</url-pattern>
  </servlet-mapping>

main.jsp ではrequest.getPathInfo()、ルーティングを行うために必要なデータを取得するために使用します。これはすべて正常に動作しているようで、ブラウズするhttp://mytestserver/example/main/test/infoと期待どおりの html が表示されます。

問題は、そのページ、画像、スタイルシート、javascript などの相対リンクが、完全な URL に対する相対リンクとして解釈されるため、すべて壊れていることです。

テスト サーバーと本番サーバーの URL が異なるレベルにあるため、静的リンクを使用する簡単な方法が思い浮かびません: 本番環境にhttp://mytestserver/example/マップさhttp://example.com/れ、すべての内部リンクをラップするコードを記述する必要はありません。または、テスト サーバー上の各サイトに仮想サーバーをセットアップします。

他にできることはありますか?

4

2 に答える 2

1

あなたの人生を楽にするかもしれないあなたが使うことができるいくつかのアプローチがあります:

  1. ドキュメントの先頭に基本要素を配置します。<base href="http://myserver/example/main"/>タグを追加すると、<a href="test/info">Hi!</a>にリンクされhttp://myserver/example/main/test/infoます。
  2. 絶対URLを生成するjspタグ(または関数)を作成すると、次のように<myserver:a href="test/info">This is a link</myserver:a>なります。次に、そのタグに絶対URLを作成するロジックを含めることができます。strutsやspringなどのほとんどのアプリフレームワークには、すでにそのようなタグが定義されています。
于 2009-02-07T04:09:15.423 に答える