urizakaと申します。
さて、質問なのですが、通常JSPで次の画面へ移行するときは、ボタンを
押してサーブレットのdopost部分へ移動して、そこでページを生成する
というやりかたですが、この別の画面へ移動する方法をハイパーリンクの
文字をクリックすると別のサーブレットへ移動するというやりかたって
できないのでしょうか?
 すみませんが、ご存知の方宜しくお願いします。

A 回答 (1件)

単純に、ハイパーリンクの先にServletを指定して下さい。


Servletは、doGetメソッドに処理を書けば、OKです。
    • good
    • 0
この回答へのお礼

なるほど、そういうことでしたか…
ありがとうございました。

お礼日時:2001/06/15 09:40

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

この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/

QJAVAサーブレットのdoPostについて

HTMLコード上にPOST送信を行うボタンや入力ボックスなどのユーザコントロールが複数表示されている状態で、特定の一行入力テキストボックスでエンターが押された場合のみ行われる処理をJAVAサーブレットのdoPost内に組み込もうとして行き詰っています。

ボタンの場合は、
if(req.getParameter([ボタン名]) != null)
という条件式で拾えているのですが、テキストボックスの送信を拾うことは何らかの方法で可能なのでしょうか?

よろしくお願いします。

Aベストアンサー

テキストボックスでエンターが押されることによってフォームがサブミットされる場合、どのテキストボックスでエンターが押されたかについての情報は、POSTのパラメータに含まれていません。

ですので、サーブレット側だけの対応では、区別することができません。
HTML側(クライアント側)で、JavaScript等で何らかの処理を行う必要があります。

単純なサンプル、HTML
<html>
<head>
<script type="text/javascript">
<!--
function setTarget(e){
if (!e) {
e = window.event;
}
if(e.keyCode == 13) {
document.form1.target.value = e.target.name;
document.form1.submit();
return false;
}
return true;
}
// -->
</script>
</head>
<body>
<form name="form1" action="aaa/bbb" method="post">
<input type="text" name="text1" onKeyPress="return setTarget(event);"><br>
<input type="text" name="text2" onKeyPress="return setTarget(event);"><br>
<input type="submit" name="button1" value="送信" />
<input type="hidden" name="target" value="" />
</form>
</body>
</html>

このサンプルでは、テキストボックスでエンターが押された場合は、targetにエンターが押されたテキストボックスのnameが設定されて、サブミットされます。

サーブレット側では、

if (req.getParameter("button1") != null) {
// button1がクリックされたときの処理
} else if ("text1".equals(req.getParameter("target"))) {
// text1でエンターが押されたときの処理
} else if ("text2".equals(req.getParameter("target"))) {
// text2でエンターが押されたときの処理
}

で区別して処理できます。
ボタンをクリックしたときにもtargetに何か含まれている可能性もありますので(ブラウザの"戻る"ボタンで戻ったあとの場合など)、ボタンではないことを確認してから、テキストボックスの処理を行った方がいいと思います。

上のサンプルは、十分に検証したものではありませんので、ブラウザの種類やバージョンによっては上手くいかないかもしれません。また、当然ですが、クライアント側でJavaScriptが有効になっていない場合も上手くいきません。

参考:Enterを押すとsubmitされる場合についての解説
http://www.programming-magic.com/20080119212425/

テキストボックスでエンターが押されることによってフォームがサブミットされる場合、どのテキストボックスでエンターが押されたかについての情報は、POSTのパラメータに含まれていません。

ですので、サーブレット側だけの対応では、区別することができません。
HTML側(クライアント側)で、JavaScript等で何らかの処理を行う必要があります。

単純なサンプル、HTML
<html>
<head>
<script type="text/javascript">
<!--
function setTarget(e){
if (!e) {
e = window.event;
}
if(e.keyCode == 13) {
documen...続きを読む

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

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

Aベストアンサー

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

Qサーブレット-サーブレットの通信で文字列を送りたいのですが

サーブレット間の通信で文字列(String)を送りたいのですが
うまく受け取れません。
URLEncoder.encodeをつかって変換して送り、
URLDecoder.decodeで受けとってます。お願いします。

Aベストアンサー

具体的に、どうなってしまうのかが分からないと、答え様がないですね。

(1)最初の文字列
(2)URLEncoder.encodeの結果
(3)URLDecoder.decodeの結果
が提示されていると、有力なヒントになるはず。差し支えなければご提示を。

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() は、サブルーチン呼び出しと変わらないはずなので、
回数に制限はないはず。

Qjavaサーブレットから別サーバのバッチ起動

お世話になります。
現在、javaサーブレットからDBサーバにあるバッチを起動するプログラムを作成しております。

HPなどで色々調査したのですが実現方法が、よくわからず困っております。
参考となるHPやコーディング例がありましたら教えて頂けないでしょうか。

javaサーブレットの環境は、
 centOS 5.5、jdk 1.6、tomcat 5.5となります。

お手数お掛け致しますが、よろしくお願い致します。

Aベストアンサー

若干邪道ですが、お手軽な方法として ssh でキックしてしまう方法もあります。
参照URLのように正規に java で実行する方が柔軟な呼び出しができますが、
java.lang.Runtime.exec() で直接 ssh を呼び出してもいいかもしれません。
# この場合は pure java ではなくなるので、メンテナンス性を考えると邪道です。

Webからバッチをキックする場合は、2度押しなど複数キックされることもあるので、実際のバッチ担当者とうまく詰めて実装しないといけないですね。

参考URL:http://d.hatena.ne.jp/n_shuyo/20060706/1152162198

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が提供されてますが、それではダメなんでしょうか?

Qサーブレットから別フレームのパラメータを取り出すことは可能でしょうか?

はじめまして。
JAVA&サーブレット初心者です。
現在、サーブレット、JSPを使ったWEBアプリケーションの開発をしてお
ります。
左右二つに分かれたフレームを持つWEBアプリケーションを作っています。
大まかな流れとしては以下の通りです。
 (1)左側のフレーム(仮にleft.jspとします)からサーブレット
 (仮にservlet1とします)を呼び出す。
 (2)右側フレームに(1)の処理結果のJSP(right1.jsp)を呼び出す
 (3)right1.jspでサーブレット(servlet2)を呼び出す。
 (4)右側フレームに(3)の処理結果のJSP(right2.jsp)を呼び出す。
 (5)right2.jspでサーブレット(servlet3)を呼び出す。
 (6)右側フレームに(5)の処理結果のJSP(right3.jsp)を呼び出す。
  上記のように左側フレームが固定で右側フレームのJSPがサーブ
 レット処理によって切り替わるようなWEBアプリケーションを開発し
 ています。
 
 問題なのは、今回開発しているシステムの要件により、(5)で呼び出され
るサーブレット(servlet3)内の処理で左側のフレーム(left.jsp)の入力
パラメータが必要だということです。

 servlet1でleft.jspの入力パラメータをセッションオブジェクトに保管
し、servlet3でセッションオブジェクトから復元すれば実現は可能かと思
いました。
 しかし、途中servlet2からの処理が大変重いものであり、セッションオ
ブジェクトは一定時間がたつと無効になってしまうと聞いたのでタイトル
のような方法を考えたのですが、見当がつかず、今回の質問に至りました。

 request.getParameter("****");

ではもちろん取り出せないと思いますが、サーブレットで別フレームのパ
ラメータを取り出すことは可能でしょうか?

はじめまして。
JAVA&サーブレット初心者です。
現在、サーブレット、JSPを使ったWEBアプリケーションの開発をしてお
ります。
左右二つに分かれたフレームを持つWEBアプリケーションを作っています。
大まかな流れとしては以下の通りです。
 (1)左側のフレーム(仮にleft.jspとします)からサーブレット
 (仮にservlet1とします)を呼び出す。
 (2)右側フレームに(1)の処理結果のJSP(right1.jsp)を呼び出す
 (3)right1.jspでサーブレット(servlet2)を呼び出す。
 (4)右側フレームに(3)の処理...続きを読む

Aベストアンサー

まず、セッションオブジェクトの保持期間はサーバーの設定により変更可能になります。Webサーバーと、WebApplicationServerの設定とあるので注意してください。
セッションオブジェクトで事が済むならそれでよいのですが、それでも駄目なら。。

左フレームから、右フレームに値を持ってくるのには、JavaScriptを使用してはいかがですか?

<FRAMESET cols="68%,*">
<FRAME src="left.html" name="left">
<FRAME src="right.html" name="right">
</FRAMESET>

parent.left.document.forms[FormName].elements[element].value="";

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

こんにちは

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

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

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

Aベストアンサー

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

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

Qjsp&サーブレットにてjpgやzip等のファイルを別フォルダにコピー&貼り付けの処理

現在jsp、サーブレット、ビーンにて
画像ファイルやzipファイルなどをアップロードできるサイトを作成していまして、アップロードについては
jakartaのfileuploadで特定のフォルダにアップロードする処理は上手くいったのですが、
アップロードしたファイルを、別のフォルダにコピー&貼り付けさせるような処理を行いたいと思っています。

java.ioについて調べてみると
txtファイルの中身を読み込んだり書き込んだりする
処理しか見つける事ができず、つまずいております。

どなたかjpgやzip等を別フォルダへの
解説をしているサイトをご存知でしたら
教えていただけますでしょうか。
もしくはあのクラスを利用すれば出来る等でも
結構ですので、すみませんがご教授よろしくお願いします

Aベストアンサー

InputStream,OutputStreamを使えばバイナリ処理(1バイト単位での読み書き)ができます。

そのままでは効率が悪いので、これにバッファーを付ける意味で、BufferedInputStreamなどを一緒に使います。


人気Q&Aランキング

おすすめ情報