HTMLのSubmitボタンを押すと、Sample_Servletにリクエストが
送信されます。そして、JSPを表示します。
その後、JSPのSubmitボタンを押すと
何もかわりません。Servletにリクエストが
わたってないのだと思います。

<FORM ACTION ="sample.Sample_Servlet" METHOD = "POST">

・・・
<INPUT TYPE = "submit" NAME="btn" VALUE ="btn">
としているのですが、、、、

何か心当たりがありましたらお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

<INPUT type="submit">とした場合、良くも悪くもとにかく何かが送信されてしまいます。

何も変わらないというのは無いはずです。

</FORM>の外にsubmitボタンが無いかどうか、よく確認してください。
経験上、</FORM>の付け忘れでもsubmitされますが、
</FORM>の外にあると、何も起こりません。

あとは、submitのつもりでbuttonにしていて、onClickのJavaScript
の中でreturn false; をしている場合です。

でもはじめのが一番可能性高いと思いますよ。

この回答への補足

すみません。
Form閉じてからSubmitボタンつけてました。
ありがとうございました。

補足日時:2001/08/24 09:27
    • good
    • 0

私への質問じゃないのですが、ついでに・・・


>"/servlet/sample.Sample_Servlet"
>"/sample.Sample_Servlet"
>"sample.Sample_Servlet"
>これってきまってるんですか? サーバーにも関係するんですか??
そのとおりです。
ようはApplicationServerやHTTPServerでALIASがどのように設定されているか・・・です。
私が使っているWebSphereというサーバーでは、DEFAULTで、
/servletは ApplicationServerのサーブレットを入れるディレクトリへのALIASとなっています。
したがって、HTMLでServletへのパスを指定するときは、/servlet/ServletName
となるわけです。

同じように 「/」 がApplicationServerのサーブレットを入れるディレクトリへのALIASの場合、2番目の/sample.Sample_Servlet という書き方になります。
また、ApplicationServerでsample.Sample_Servlet をAAAと登録すると、例えば一番目の書き方で、
/servlet/sample.Sample_Servlet

/servlet/AAA
は同じ動作をします。

この回答への補足

回答ありがとうございます。

>ようはApplicationServerやHTTPServerで
>ALIASがどのように設定されているか・・・です。

なるほど。
私は、Tomcatをつかってます。

そういうことだったんですね。
わかりました。ありがとうございました。

補足日時:2001/08/25 22:16
    • good
    • 0

上記の情報だけではよく分からないのですが、サーブレットへのアクセスが


http://localhost/sample.Sample_Servlet
だと仮定して、ACTION値を
<form action="/sample.Sample_Servlet" method="post">
としてもアクセスできませんか?

この回答への補足

回答ありがとうございます。

>ACTION値を
><form action="/sample.Sample_Servlet"
>method="post">
>としてもアクセスできませんか?

すみません。</FORM>タグの外にSubmitボタンを
つけてました。
ACTION値のパスの指定というのは

"/servlet/sample.Sample_Servlet"
"/sample.Sample_Servlet"
"sample.Sample_Servlet"

・・・私はJSPのACTION値を1番目にしてるんですが、
これってきまってるんですか?
サーバーにも関係するんですか??

補足日時:2001/08/24 09:22
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QFreeBSD Apacheの環境でサーブレットやJSPは使用できますか?

 Javaについての質問ですが
FreeBSD Apacheの環境でサーブレットやJSPは使用できますか?
FreeBSD Apacheの環境でのサーブレットやJSPの実装は存在しますか、という質問です。
Javaに詳しい方、どうかよろしくお願いいたします。

Aベストアンサー

FreeBSD上でサーブレットやJSPを動かすためには、
・Tomcatなどのアプリケーションサーバ(Javaサーバ)
・JVM(Java実行環境)
が必要です。

TomcatはJavaで書かれているためプラットフォーム非依存なので○○版、というのはありません。
(配布ファイルの圧縮形式でZip版とtar.gz版とWindows向けインストーラつきのexe版がありますが、中身のTomcat本体はどれも同じのはずです。)

次にFreeBSD用のJava実行環境ですが、次のところから入手できるようです。しかしSunのJVM仕様とどのくらい互換性があるのかわかりませんので、Tomcatが正しく動作するかというと、私にはわかりません。

参考URL:http://www.freebsd.org/ja/java/

Qjspとservlet、sqlの連携でformのsubmitが押せない

いつもお世話になっております。
Java1.5
MySQL5を使用しています。
Javaの勉強でjspとservletを使ってデータベースにレコードを追加・変更・削除する処理を行っております。
追加処理は問題なく動くのですが、レコードが30件以上あった場合のみ変更画面が動作しません。
チェックボックスにチェックを入れたもののみ変更する、というプログラムなのですが、30件以上のレコードから選択すると<input type="submit" …>が押しても何も動作をしません。
レコードはfor文でまわして、<input type="text" name="name" …>というように配列として渡しています。
同じような構造で書いている削除処理は30件以上で問題なく動くので変更処理プログラム内の問題かとも思ったのですが、レコードを渡すformの中で<input type…>を1つ減らせば(現在は3つのカラムを渡しています)submitが押せることに気付きました。
調べてもなかなか出てこないので、質問させて頂きます。
ご指導お願いいたします。

いつもお世話になっております。
Java1.5
MySQL5を使用しています。
Javaの勉強でjspとservletを使ってデータベースにレコードを追加・変更・削除する処理を行っております。
追加処理は問題なく動くのですが、レコードが30件以上あった場合のみ変更画面が動作しません。
チェックボックスにチェックを入れたもののみ変更する、というプログラムなのですが、30件以上のレコードから選択すると<input type="submit" …>が押しても何も動作をしません。
レコードはfor文でまわして、<input type="text" name="n...続きを読む

Aベストアンサー

><form mathod="post" action="db.jsp/up_checker.jsp" style="display : inline;">

ここでmethodとすべきところがmathodとなっている(2文字目がaになっている。eが正。)ため標準でGETリクエストを発行しようとします。
そのためにIEのGET制限にひっかかっているのだと思います。
(Firefoxだったらsubmitできましたので)
※具体的にIEの制限内容までは調査していません。

修正前はサブミットできないことを確認、修正後はサブミットされることを確認しましたので、これでいけるかと。

QApache環境でJavaサーブレットを動かすのには?

Windows2000のマシンに「Apache for Win32(Ver1.3)」と「JDK1.3」をインストールし、
そのサーバで実際にJavaサーブレットで作成したページを表示させようとしました。
しかし、サーブレットのソース(****.java)を「javac」でコンパイルしたところ、
エラーが発生して、うまく動作されませんでした。
雑誌にあったサンプルをコンパイルしたので文法的には当たっているので、
問題は環境にあるように思えるのですが、他にインストールするものはあるのでしょうか?

Aベストアンサー

サーブレットのコンパイルには、JDKとは別に、JSDKが必要です。
また、サーブレットを実行するのも、確か、Apacheだけでは無理です。
(昔は無理でした)
で、JRun、Apache JServ等のサーブレットエンジンと呼ばれるものを
インストールする必要があります。
(Tomcatを入れるのがいいのかな?)

QJava(Servlet,JSP)を使用してあるURLにHTTPリクエスト(POST)を送信する方法

あるWeb APIを使用したWEBアプリケーションを作成しています.
JavaのServletやJSPで実装していますが,サンプルではGETでリクエストを送る方法だけが紹介されていました.
APIがPOSTに対応しているので,POSTでリクエストを送信しようと思います.
サンプルは以下のようになっていましたが,POSTでリクエストを送信する場合,どう変更すれば良いでしょうか?

URL url = new URL("http://xxxxxx.xx/xx/?q=" + URLEncoder.encode(request.getParameter("data"), "UTF-8"));
URLConnection con = url.openConnection();
InputStream stream = con.getInputStream();

リクエストは日本語を含むデータをパラメータに含める予定です.

Aベストアンサー

HttpURLConnection POST
でGoogleで検索すると沢山出てくるけどね。

わかりやすいのは
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=22814&forum=12&6
ここかしら。

Qサーブレットforward時の実行メソッドについて

初歩的な質問で失礼します。

サーブレットAに doGet, doPost, serviceメソッドを実装しています。
サーブレットBのdoPostメソッド内にて
サーブレットAにforwardを実行する場合に、
呼出されるのはサーブレットAのどのメソッドですか?

JSPへのforwardはできたのですが、
サーブレットへのforwardができず悩んでいます。

サーブレットのAPIを読んでもいまいちわかりません。
何かメソッドに関する制約があるのでしょうか?
上の質問は全くマト外れでしょうか?

追加ですが・・・
サーブレットからforwardされたサーブレットで、
そこからさらにJSPへforwardすることはできますか?

Apache2.0.43+tomcat4.1.12+Java1.4.0_01です。

Aベストアンサー

> サーブレットBのdoPostメソッド内にて
> サーブレットAにforwardを実行する場合に、
> 呼出されるのはサーブレットAのどのメソッドですか?

doPost() のはず。実際には、forward するときの HttpServletRequest#getMethod() で取得できる文字列に従うはず。

> JSPへのforwardはできたのですが、
> サーブレットへのforwardができず悩んでいます。

forward に関して、servlet と JSP の違いはないはず(というか、JSP は自動コンパイルされる servlet だし)。
getRequestDispatcher() してるパスが間違っているのだと思います。

> サーブレットからforwardされたサーブレットで、
> そこからさらにJSPへforwardすることはできますか?

コンテナの実装次第だけど、forward() は、サブルーチン呼び出しと変わらないはずなので、
回数に制限はないはず。

QjspからServletを呼び、元のjspページに戻るにはどうしたらよいですか?

・jspページにあるボタンを押すとServletに値を渡す。
・Servletで処理をする。
・処理の結果を元のjspページに表示する。

というプログラムを作りたいと考えています。
jspページ→Servletで処理をする、という所までは出来たのですが
その後元のページに戻すというところで困っています。

jspページは複数(十数ページ)あり、Servletは1つです。
a.jsp→Servlet→a.jsp
b.jsp→Servlet→b.jsp
このように、どのjspページから呼ばれても、元のjspページに
戻したいのですが、どのようにすれば実現できるでしょうか?

Aベストアンサー

doGetメソッドなら
import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class サーブレット名 extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
res.sendRedirect(new URI(req.getHeader("referer")).getPath());
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
}
(JDKやサーバーなどの環境、eclipse等を使用しているかなど、詳しく書いたほうがいいですよ^^!ロジック自体はもっといいものがあるかどうか検討してみてください。sendRedirectメソッドはリクエスト属性を保持しないので、必要な場合はRequestDispatcher#forwardメソッドの使用も考えられます。その場合はパスの記述が/アプリ名/ファイル名ではなく/ファイル名 になりますが(余談))

doGetメソッドなら
import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class サーブレット名 extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
res.sendRedirect(new URI(req.getHeader("referer")).getPath());
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
}
(JDKやサーバーなどの環境、eclipse等を使用しているかなど、詳し...続きを読む

Qサーブレットを動せるレンタルサーバについて

サーブレットを動せるレンタルサーバについて

現在、ロリポップ(チカッパプラン)という月額500円程度の(PHPやMySQLが使える)レンタルサーバを借りていますが、共用サーバですのでサーブレットが動かせないです。(tomcatやJDKをインストールすること自体不可能)

そこでレンタルサーバでサーブレットを動かそうとする場合、高価な専用レンタルサーバを借り、
tomcatのインストールやJDKの設定を全部自分でやらないといけないのでしょうか?
最初から既にサーブレットが動く環境(Apache+tomcat)がデフォルトで用意されすぐに利用できるようなレンタルサーバは通常ないものでしょうか?

現在、ローカル環境を2つ構築しており、(2)のようなサーブレットが動作する環境が最初から整ったレンタルサーバがないものかと考えています。
普通はレンタルサーバを借りてサーブレットを動かそうとすれば、tomcatやらJDKやら自分で専用サーバにインストール&設定するものなんでしょうか?それ以外に手法はありますか?

ローカル環境は2つ構築していています。
(1) windows7 Xampp(Apache2.2+tomcat7連携)JDK6
(2) 自宅サーバ:centOS5.6 Apache2.2+tomcat5.5連携 JDK5 

サーブレットを動せるレンタルサーバについて

現在、ロリポップ(チカッパプラン)という月額500円程度の(PHPやMySQLが使える)レンタルサーバを借りていますが、共用サーバですのでサーブレットが動かせないです。(tomcatやJDKをインストールすること自体不可能)

そこでレンタルサーバでサーブレットを動かそうとする場合、高価な専用レンタルサーバを借り、
tomcatのインストールやJDKの設定を全部自分でやらないといけないのでしょうか?
最初から既にサーブレットが動く環境(Apache+tomcat)がデフォル...続きを読む

Aベストアンサー

最初から環境が整ってるというわけではありませんが最近は比較的安価にVPSが提供されてますが、それではダメなんでしょうか?

QServletからJSPに遷移させた後もServletに制御を戻したいんですが

Java初心者です。宜しくお願いします。
現在、ServletからJSPに対してIncludeまたはForward
した後にServlet側にて処理を継続させる方法が
ないか調べています。
Forwardは×かなというところ
まではわかったのですがIncludeで行った場合
Servlet → JSPに遷移させた後に呼び出し元の
Servletに制御を戻す事は可能でしょうか。
また、一般的な方法がありましたらご教授お願いします。

宜しくお願いします。

Aベストアンサー

なぜそうしたいか?
というのがわからないので、適切な回答になっているか分かりませんが、

サーブレット
リクエストを受け取る

(継続させたい)処理を行う

JSPを返す

となっているんですよね?(今は)

サーブレット         スレッド
リクエストを受け取る

スレッドを生成して開始させる→処理を行う
↓              ↓
JSPを返す         処理を継続して行う

とすれば、サーブレットはスレッドを起動・開始すればすぐ処理が戻ってきますので、JSPを返した後も処理が継続できるのでは?

ただし、サーバーのリソースなどを考慮して下さいね。

QJava サーブレット間の値の受渡について

こんにちは

サーブレットAからサーブレットBへ値を渡して、
サーブレットAで、戻り値を取得したいと考えています。

条件としては、
・サーブレットBの改修はできない
・サーブレットBへはGet,Postで値を渡すことができ、
戻り値を数値で貰える
というものです。

サーブレットA側からサーブレットBへリダイレクトするやり方はわかったのですが、それだと処理が完全にサーブレットBに移ってしまい、戻り値に応じた処理がサーブレットA側で行えないのです。
一般的なプログラミングのように、コールして戻り値に応じて処理を分ける・・といったことは出来ないのでしょうか?

Aベストアンサー

サーブレットAからBへリダイレクトしたのでは、そのままページを移るだけですからお望みのような働きにはなりません。

どうしてもというなら、サーブレットAの中から、URLConnectionでサーブレットBに接続をし、結果を受け取って処理する、というような形になるかと思います。要するに、サーブレットAの内部から、HTTPでサーブレットBにアクセスするわけです。

QJSPでボタンを押したら、文字が出るようにしたい。

<%int i=0;%>
<form>
<input type="submit" value="私物回収" onClick=<%i=i+9;%>>
</form>
<%if(i>=10){%>
<p>18になったよ。</p>
<%}else{%>
<p>9になったよ</p>
<%}%>

ソースはこんな感じに書いております。
1回クリックしたら、(9になったよ)って出て、2回クリックしたら(18になったよ)って出るようにしたいです。
今の状態だと、ボタンを押してないのに(9になったよ)って出てしまいます。
これをボタン押す前は何も出さず。押してから出るようにしたいです。
回答お願いします。

Aベストアンサー

<input type="submit">を使っていますよね。ということは、クリックしたら送信して、そのアドレス(おそらくこの状態では現在のページ)がリロードされます。

つまり、リロードされる段階で変数iなどはすべてまた初期状態に戻りますから、何度ボタンを押しても結果はかわりません。常に、ボタンをおす度に最初の<%int i=0;%>でiはゼロになり、その後の<%i=i+9;%>で9になって、それがそのまま結果につながります。

考え方としては2つあります。

1つは、JSPがどうとか考えず、すべてJavaScriptとして記述する、という考え方です。

もう1つは、値を<input type="hidden">などに保管しておき、送信したらその値をgetParameterで取り出して、その値を元に変数iを設定するようにする、というものです。あるいは、セッションなどに値を保管してもいいでしょう。

これは、フォームの送信やセッションについて理解していないといけません。そのあたりはすでにわかっていますか? わかっていなければ、そのあたりまで学習を進めて下さい。

<input type="submit">を使っていますよね。ということは、クリックしたら送信して、そのアドレス(おそらくこの状態では現在のページ)がリロードされます。

つまり、リロードされる段階で変数iなどはすべてまた初期状態に戻りますから、何度ボタンを押しても結果はかわりません。常に、ボタンをおす度に最初の<%int i=0;%>でiはゼロになり、その後の<%i=i+9;%>で9になって、それがそのまま結果につながります。

考え方としては2つあります。

1つは、JSPがどうとか考えず、すべてJavaScriptとして記述する...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報