- PR -

servletの位置を相対パスで指定したいが・・・・

1
投稿者投稿内容
jokers
ベテラン
会議室デビュー日: 2002/08/04
投稿数: 73
投稿日時: 2003-10-02 16:49
 たびたび申し訳ございません。
 現在windowsマシンにて実験段階にて仮想shoppingモールを作成中ですか、後々のことを考慮しますとformからのパスを相対指定にしておいて完成後、warファイルにしてLinuxマシンに移動し展開したいと思っているのですが、web.xmlの指定の関係上、相対パスにすると実験マシンでエラーが出てしまいます。
 よって現状絶対パスにて動作確認しております。
 移したあとパスを手直しするのも煩わしいのでなにかいい方法はありませんでしょうか。
 尚、web.xmlは以下の通りです
 <servlet>
<servlet-name>CartServlet</servlet-name>
<servlet-class>scratch.CartServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CartServlet</servlet-name>
<url-pattern>/CartServlet</url-pattern>
</servlet-mapping>
お忙しい中大変申し訳ございませんが、是非皆様のお知恵拝借させて頂きたいのですが
宜しくお願い申し上げます。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-10-02 17:04
「formからのパスを相対指定に」とは、action のパスのことでしょうか?
どのようなエラーが出ていますか?
普通に、以下の様に相対パスで記述できるかと存じます。
<form action="./CartServlet" method="post">
<.../>

</form>

urn-pattern 要素のことを指しているとしたら、これはコンテキストルートからの絶対指定になりますので特に問題はないかとおもいます。
ご存じかとは思いますが、 <url-pattern>/CartServlet</url-pattern> と指定していても、Webアプリケーションのコンテキストルートがたとえば "shoppoing" になれば、
http://host:port/shopping/CartServlet から呼び出せるはずです。
未記入
大ベテラン
会議室デビュー日: 2003/06/28
投稿数: 219
投稿日時: 2003-10-02 17:07
引用:

jokersさんの書き込み (2003-10-02 16:49) より:
よって現状絶対パスにて動作確認しております。


うーんと、ちょっと質問の趣旨を汲み取れないので、自分なりの解釈で回答しますが
要は<form>タグのactionを事実上相対パスにしたいということでしょうか?
もしそうでしたら、それはできない相談かと・・・ ←訂正

HTMLをサーブレットかJSPから投げているとすれば、例えば自身のURLを取得するか
変数に突っ込んでおいて、クライアントに投げるHTMLに代入してしまえば変更箇所が
無くなるか、最低1箇所で済むと思われます。。。

# 訂正
普通に相対パス指定できました。すいません。
しばらく修行して参ります。

[ メッセージ編集済み 編集者: Ken-Lab 編集日時 2003-10-02 22:32 ]
1

スキルアップ/キャリアアップ(JOB@IT)