• ベストアンサー

JSPの同時アクセス可能数制限

いつもお世話になっています。 JSPの同時アクセス可能数を1人だけに制限したいと考えています。 ある人がJSPを開こうとした時に、他の人が同じJSPにアクセス中の場合は、警告ダイアログを出し、遷移させないようにしたいです。 JSP→JSPの遷移は単純に <input type="button" value="テスト" onclick="location.href='<%= resource.getString("URL") %>'"> のような感じで、ボタンにリンクを仕込んでいます。 ボタンをクリックして、遷移しようとした際に、リンク先がアクセス中だったら上記のような抑止処理を行いたいと考えています。 セッションやクッキーを使うのでしょうか?初心者で知識が足りないため、根本的に何を使えばいいのかも悩んでいます。 宜しければ、アドバイスを頂けると助かります。

  • Java
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • dyna_1550
  • ベストアンサー率34% (122/353)
回答No.2

僕が思う「初心者」にこの問題は難しすぎる気がしますが・・ HTTPプロトコルはステートレスなのでこの問題が発生する、ということは 理解されているようなので、初心者では無いと思うのですが・・ ですので、「ステートレス」の解決方法で検索すれば何か引っかかるかもしれませんね。 過去(の記憶で)、僕の経験では、セッション保持の期間を1分程度にしておき、 ブラウザにはリロードするようMETAタグを入れておいて、セッションを 更新することで、ブラウザを閉じるタイミングでは最大1分は無駄に なりますが、ユーザー数の制御はこんな感じで行った(と記憶しています)。

Mitsunari
質問者

お礼

丁寧な回答ありがとうございます。 せっかく教えていただいたのに、仕様が変わってしまい、制限が不要になってしまいました;; もし、今後またこのような問題に遭遇したときのために記憶に留めて置こうと思います。 ステートレスという言葉も初めて聞きましたので、色々勉強になりました。

その他の回答 (1)

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

うーん、リスナとフィルタの組み合わせかなあ。 onclickのリンク先は、超簡単なJSPにしておき: if (先客あり)  エラーページ } else{  include本番JSP } みたいなロジックでよいのでは?

Mitsunari
質問者

お礼

お早い回答ありがとうございます。 リンク先はアドバイス頂いたように条件式を含んだJSPに飛ばす形に変えたいと思います。 先客ありの部分をどのように感知するか、もう少し意見を頂けたらと思います…。すみません。

関連するQ&A

  • 携帯 JAVA JSP 画面遷移

    携帯のWebアプリを作成しており、ボタンごとに画面遷移させる方法を考えています。 以下はPC用に作成したJSP <script Language="JavaScript"> <!-- function inOut(flg){ if(flg){ lert("あ"); location.href='top.jsp'; }else{ alert("い"); location.href='top2.jsp'; } } // --> </script> <html> <head> <title>テスト</title> </head> <body> <form method="POST" action="top3.jsp"> <input type="button" name="in" onClick="inOut(true);" value="あ" /> <input type="button" name="out" onClick="inOut(false);" value="い" /> <input type="submit" name="back" value="う" /> </form> </html> 現状の問題点は2点あり、 1.携帯はJavaScriptが使用できない 2.<input type="button"~ とするとテキストボックスのような見栄え・機能になってしまう。 携帯Webアプリの場合、ボタンごとの画面遷移はどのように行えばよいのでしょうか?

  • ログアウト処理

    <?php if(isset($_SESSION["sdata"])) { print "ようこそ".$_SESSION["sdata"]."さん"; print "<INPUT type=\"button\" value=\"ログアウト\" onClick=\"location.href='自分自身'\">"; unset ($_SESSION["sdata"]); } else { print "ようこそゲストさん"; print "<INPUT type=\"button\" value=\"ログイン\" onClick=\"location.href='ログイン画面'\">"; exit; } ログイン画面で認証できたら、$_SESSION["sdata"]=ユーザー名 として、他の画面では上のような処理をしようかと思ったのですがこれではブラウザの更新ボタンを押してもログアウト扱いになってしまうことに気づきました。 onClick=\"unset ($_SESSION["sdata"]);\" にしたらいけるかと思ったのですが、エラーになってしまいました。ログアウトボタンを押したらセッション変数を削除したいのですが、どうしたらいいでしょうか? それと、ログイン処理はクッキーとかも使ったほうがいいのでしょうか?

    • 締切済み
    • PHP
  • javascriptでのログアウトボタン

    お世話になっております。 現在サーブレットの学習をしており、DBへアクセスしログインした情報をセッションで 残しているのですが、ログアウトのボタンを設置した際、 jacascriptのみでセッションを切断しログイン画面へもどることは可能でしょうか。 function logOut() { ret = confirm("アドレス帳を終了しますか?"); if (ret == true) { session.invalidate(); location.href="/jsp/Login.jsp"; return true; } } とスクリプトを記述してもjspへ遷移しないのはなぜでしょうか。 どうか知恵をおかしください。

  • HPボタンの長さが異なる。

    下のボタンが マックの「IE4.5」「IE5.0」「ネスケ4.7」だとちゃんと奇麗に中央に表示されますが、 Windows「IE4.5」「IE5.0」はボタンの長さが異なり ガタガタになります。 windowsでも奇麗に並べるにはどうしたらいいのでしょうか? よろしくご指導お願いいたします。 テストでアップしてあるURLですのでご確認してください。 http://watn.jp/test/ <HTML> <HEAD> <TITLE>++++</TITLE> </HEAD> <!------------------- 中身-------------------> <center> 下のボタンがマックの「IE4.5」「IE5.0」「ネスケ4.7」だと<br> ちゃんと中央に表示されますが、Windows「IE4.5」「IE5.0」は<br> ボタンの長さが異なりガタガタになります。 <FORM> <INPUT TYPE="button" VALUE=" ●●・・◇◇◇   " onClick="window.location.href='kituke.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇  " onClick="window.location.href='sadou.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇◇ " onClick="window.location.href='buyou.html'"><br> <INPUT TYPE="button" VALUE=" ●●・・◇◇◇   " onClick="window.location.href='ivent.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇  " onClick="window.location.href='tenjikai.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇       " onClick="window.location.href='butai.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇◇      " onClick="window.location.href='honten.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇◇◇     " onClick="window.location.href='yono.html'"><br> </FORM> </center> </BODY> </HTML>

  • ボタンで、リンクを、別ウィンドウで開く

    質問させていただきます。 ボタンで、リンクを、別ウィンドウで開くには どういうソースを書いたら良いのでしょうか? <FORM> <INPUT TYPE="button" VALUE="リンク" onClick="window.location.href='index.html'"> </FORM> だと、同一ウィンドウ内に開いてしまいますし・・・。 どうか教えてください。よろしくお願いいたします!

  • リンクボタン

    ボタンを押してリンク先に飛ぶようにするには <form><input type="button" value="homeへ" onClick="location.href='home.html'"></form> とすれば可能ですがこれをJavaScriptを使わずに出来る方法はないものでしょうか? どうしても画像など使わずにボタンで実現させたいのですが。

    • ベストアンサー
    • HTML
  • ボタンの違い

    くだらない質問になってしまいますが、 押しボタンのリンク方法で、 onClick=location.href onClick=parent.location.href onclick=window.open はそれぞれどのような効果なのでしょうか?

    • ベストアンサー
    • HTML
  • location.hrefで別窓にリンクを表示させたい

    ボタンを作成して、ボタンが押されたらlocation.hrefを利用してリンクに飛ばしているのですが、これを別ウインドウに表示させたいと思っています。別ウィンドウといっても新規に別ウインドウを立ち上げたいのですが、記述方法がわかりません。。。。 ちなみに現在の記述は <INPUT type="button" value="aaaa" onClick="location.href='hogehoge.html" > どう修正したらいいのでしょうか?

  • ボタンの長さを変えたい(至急)

    <INPUT TYPE=BUTTON VALUE="最新100回グラフ" onClick="location.href='../grf/100.htm'"> <INPUT TYPE=BUTTON VALUE="最新50回グラフ" onClick="location.href='../grf/50.htm'"> このようなボタンの長さを揃えたいです。 スペースで調節するしかないのでしょうか?

    • ベストアンサー
    • HTML
  • JSPでリンクを利用してパラメータを次画面に渡す方法について。

    一覧表示されているデータのNOをクリックすると、二つのパラメータでデータベースへアクセスし、該当データの詳細画面に遷移する、というプログラムを作っています。 データベースへアクセスする際に必要なIDは2つで、仮にID_A、ID_Bとします。 リンク部分のソースは --------------------------------------------------------------------- <a href = "update_form.jsp?ID_A=<%= rs.getString("ID_A") %>">番号</a> <input type="hidden" name="ID_B" value="<%= rs.getString("ID_Bcat_id") %>"> --------------------------------------------------------------------- としておりますが、次画面へ遷移すると、ID_Bの値はnullとなってしまうために、正常にデータの取得ができません。 二つのパラメータを使用する場合のパラメータを渡す方法を教えて頂きたいと思います。よろしくお願いします。

    • ベストアンサー
    • Java