- PR -

画像がクリックされたらサーブレットを実行

投稿者投稿内容
インスパ
大ベテラン
会議室デビュー日: 2002/08/30
投稿数: 125
投稿日時: 2002-08-30 09:09
画像がクリックされたらサーブレットを実行したいのですが以下のようにハイパーリンクで
サーブレットを指定することはできないのでしょうか?
(以下のようにするとページが見つからないとエラーが出ました)

<A HREF="LogonServlet"><IMG SRC="image/login.gif" ALT="ログオン"></A>

※Tomcat3.2.1を使用しています
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2002-08-30 15:25
LogonServletを直接開いて動作することを確認していますか?

Aタグの中のhrefの指定先は正しいですか?(パッと見では間違っているような気がします)

> サーブレットを指定することはできないのでしょうか?
・・・なぜ『できない』と思われるのかが疑問です。
インスパ
大ベテラン
会議室デビュー日: 2002/08/30
投稿数: 125
投稿日時: 2002-08-30 15:50
>LogonServletを直接開いて動作することを確認していますか?
>Aタグの中のhrefの指定先は正しいですか?(パッと見では間違っているような気がします)
以前はボタンで処理していたので動作は確認しています
<FORM NAME=FORM_xxx METHOD=POST ACTION=LogonServlet>
t-wata
大ベテラン
会議室デビュー日: 2002/07/12
投稿数: 209
お住まい・勤務地: 東京
投稿日時: 2002-08-30 17:46
LoginServletはHttpServletのサブクラスですか?
DoGetはオーバーライドしてますか?
フォームはメソッドがPOSTなので、フォームから呼ばれた場合は
LoginServlet#DoPostが実行されますが、アンカーから呼ばれた
場合はGETになるので、DoGetをオーバライドしないと、
BAD_REQUEST (405エラー)になりますよ。
わらび
ベテラン
会議室デビュー日: 2002/08/30
投稿数: 53
投稿日時: 2002-08-30 18:47
初めて投稿します。よろしくお願いします。

情報が少ないので,なんともいえませんが,
おそらく,hrefのpathが違っているのではないかと思います。

出るエラーは404エラーですか?

でも、submitした場合は、問題ないんですよね?
それならやはり、t-wataさんがおっしゃっているように、doGet()でしょうか。

エラーコードも教えていただけると,皆さんも推測しやすいのではないでしょうか。
インスパ
大ベテラン
会議室デビュー日: 2002/08/30
投稿数: 125
投稿日時: 2002-09-02 13:13
どうもありがとうございます。
DoPostをオーバーライドしていたものをDoGetへ変更すれば実行されました
もうひとつ教えてほしいのですが
ハイパーリンクでサーブレットを呼び出した場合にフォームの情報をサーブレットで取得
しても値がNULLになっています(ボタンでsubmitiした場合は値が入っているのですが)

JSPのソース(抜粋)
<FORM NAME=FORM_SELECT>
<TEXTAREA NAME="COMMENT" ROWS="8" COLS="10" MAXLENGTH="50"></TEXTAREA>
 <A HREF="ScheduleServlet">
 <IMG SRC="image/reg.gif" ALT="登録" NAME="reg"></A>
</FORM>

サーブレットのソース(抜粋)
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{

// 必要なクラスとBeanの生成
HttpSession session = request.getSession(true);

ScheduleBeans schedule = (ScheduleBeans)session.getAttribute("schedule");
if (schedule == null) {
// まだ生成されていない場合には、新たに作る
schedule = new ScheduleBeans();
}
schedule.setScheduleComment(request.getParameter("COMMENT"));

フォームでデータを入れてもrequest.getParameter("COMMENT")の値がNULLになります
何かわかるようでしたらお教え願います
BBC
常連さん
会議室デビュー日: 2002/03/15
投稿数: 37
お住まい・勤務地: 東京
投稿日時: 2002-09-02 13:29
<INPUT TYPE="IMAGE" SRC="image/reg.gif" ALT="登録" NAME="reg">
を<A>〜<IMG>〜</A>タグと入れ替えれば良いかと思います。
その際に<FORM>タグに
METHOD="GET" ACTION="ScheduleServlet"
も追加してください。

理由は・・・考えてみてください。

#主にJSP(というかHTML)側の問題だと思いますが。


[ メッセージ編集済み 編集者: BBC 編集日時 2002-09-02 13:42 ]

[ メッセージ編集済み 編集者: BBC 編集日時 2002-09-02 13:45 ]
わらび
ベテラン
会議室デビュー日: 2002/08/30
投稿数: 53
投稿日時: 2002-09-02 13:33
FORMに入力されたデータは、submitされたときに、FORMタグ内のaction属性で
指定されたURIに送信されます。

ですので,単純に<A href="">タグでは、FORMデータは送信されません。

JavaScriptを使うか,URLのクエリーで送るのがよいのではないでしょうか?

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