プロが教える店舗&オフィスのセキュリティ対策術

JSPで、終了ボタンをクリックしたときに、
ブラウザを閉じる、といった処理は
<INPUT TYPE = "submit" NAME="EXT" VALUE ="終了" onclick ="window.close();">

などでできるとあったのですが、
終了ボタンで、ページ(JSPではなく、
HTML)を移動する場合、onclick=以下に
HTMLのアドレスを書いたらいいのでしょうか?
やってはみたのですが、うまくいきませんでした。
うまくいかないというのは、
そのままServletにリクエストがわたるようで、
表示ページから何も移動しないということです。

また、<a href = "・・・></a>という
リンクのタグもやってみましたが、
ランタイムエラーがでてしまいました。

何か外しているようでしたら、教えていただきたい
のですが。。。。

A 回答 (4件)

二つ案を用意しました。

両方とも、

button1を押したら、サーブレットにサブミットされ、
button2を押したら、次のURLに移動します。

**案1********************
<form action="/servlet/SimpleServlet">
<input type="submit" name="button1" value="終了">
<input type="button" name="button2" onClick="save();">
</form>

function save(){
document.write("<FORM name=\"SAVE\" method=\"POST\" action=\"/html/nexturl.html\"");
document.write("<INPUT type=\"hidden\" name=\"AAA\\" value=\"aaa\">");
document.write("</FORM >");
document.SAVE.submit();
}
**********************


他にも、
**案2********************
<form name="FORM1">
<input type="button" name="button1" onClick="save(1);">
<input type="button" name="button2" onClick="save(2);">
</form>

function save(n){
if(n==1)document.forms[FORM1].action="/servlet/SimpleServlet";
if(n==2)document.forms[FORM1].action="/html/nexturl.html";
}

**********************

この回答への補足

kuro_73さんのコードでやってみると
できました!!!

有り難うございます!!
大変感謝しております。

補足日時:2001/08/15 15:51
    • good
    • 0

こういうことでしょ。



<form>
<input type="button" value="終了" onClick="location = 'next_url.html'">
</form>

type="submit" のボタンを押すから、form の action で指定されている
servlet に制御が渡るんです。

この回答への補足

ありがとうございます。

a-kumaさんが書いたように試してみたのですが
できなかったので。。。

>type="submit" のボタンを押すから、form の action
>で指定されている
>servlet に制御が渡るんです。

はい。ボタンのところだけ、ただのformタグに
してやってみたのですが、指定の仕方が悪いのだと
思うんですけど、真っ白いページがでてきました。
location以下はただ単にhtml名だけでいいのでしょうか?
パスを指定してもだめでした。

それと、ボタンは3つあって、
1ボタン、2ボタン、終了ボタン
があるのですが、終了ボタン以外は
クリックでServletにリクエストを渡す
ボタンにしたいのです。
タグで、TABLEタグを用いてますが、
終了ボタンだけ、Formタグを別にすることが
できませんでした。。
なにか方法がありましたら教えてください。

補足日時:2001/08/15 11:38
    • good
    • 0

<補足>


FORMにはMETHODがあって、
<FORM METHOD="GET">とか<FORM METHOD="POST">とか指定します。
これらはそれぞれ、javax.servlet.http.HttpServletのdoGet()やdoPost()メソッドが受け取ります。

<a href = "次のURL?aaa=AAA&bbb=BBB"></a>
というような指定で次のURLやServletに飛んだときの動作は
次のフォームの動作と等しくなります。
つまり、<a href></a>はGETの動きをするんです。

<FORM METHOD="GET" ACTION="次のURL">
<INPUT TYPE="submit">
<INPUT TYPE="hidden" name="aaa" value="AAA">
<INPUT TYPE="hidden" name="bbb" value="BBB">
</FORM>

同様に、ブラウザのアドレスバーからURLを打ち込んだ場合もGETメソッドと等しい動作をします。

この回答への補足

POSTで受け取るようにしています。


うーん。。。
流れとしては、

1.JSPの終了ボタンをクリックすると、
Servletにリクエストが送信され、
2.Beanで処理、
3.その後、ServletがJSPを呼び出す

という感じですよね?

それで、やりたいのは、
JSPの終了ボタンクリックによって
JSPを表示するのではなくて、
別に存在するHTML画面を表示させたいんです。
画面を移動させたいんです。

結局、JSPの終了ボタンクリックでServletに
制御がわたるので、そこで
なにかしないといけないんですか???

補足日時:2001/08/15 10:46
    • good
    • 0

その処理を行うには、HTMLの<FORM>の知識が必要です。


JavaScript(onclick等)を使用して、もう少し複雑な処理をするなら、
JavaScriptの知識も多少必要です。

SUBMITをするときのアクション先は、
<FORM>タグのactionに次のURLやServletのURLを書きます。
<FORM action="次のURL">
<INPUT TYPE = "submit" NAME="EXT" VALUE ="終了">
</FORM>

基本的に<INPUT>タグは<FORM>タグの中にあるものです。
同じサーブレットに飛んでしまうのは<FORM>タグが無いために、
現在のURLに対してSUBMITしているのだと思います。

この回答への補足

ありがとうございます。

<FORM action="次のURL">
<INPUT TYPE = "submit" NAME="EXT" VALUE ="終了">
</FORM>

これはやっております。
Formタグには、Servletのアドレスを書いているので
Servletにリクエストが送信されるのは分かるのですが、

たとえば。。。
onclick以下にselef.close()等と続けると、
Servletにはリクエストは送信されず、
ブラウザを終了してくれたので、
onclick を使えばいいのかなあと
安直に思ったものですから。。。

補足日時:2001/08/15 10:42
    • good
    • 0

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

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