• ベストアンサー

JSP、サーブレットの初期処理

最初に、あるページをアクセスした時に、 サーブレットで最初の1回目のアクセス時のみ特定の処理をする。 その結果をJSPに返す という事を行いたい場合、 どのような関数(仕組み)? を利用すれば良いのでしょうか? また、その場合にあるイベント(ボタン押下等)でも 初期処理の処理を行う と言う事は可能でしょうか? (関数コールなどで初期処理と同じ箇所に書かれたソースを利用したい) JSP、サーブレット初心者です。よろしくお願いします。

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

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

  • ベストアンサー
  • akr
  • ベストアンサー率18% (32/173)
回答No.2

#1です 技術者向のカテゴリーですが、素人の方ですか? 私が#1で書いた内容は、正直そのままのことじゃなくて、あそこに羅列したような内容は検討すべきかなと思い、そのヒントになればと思い書きました。 > 最初の一回とは、 > あるページにアクセスした最初の1回で > 「クライアント単位で見た最初の一回」に該当すると思います。 クライアント単位って、じゃあデプロイし直したりサーバーを再起動した場合でも関係ないってこと? 一つのPC(クライアント)でブラウザを2つ開いたときはどうなるの? 一つのPCで、ログインユーザーが替わっても、同じクライアントって扱うの? 一つのPCで、IPが変わった時も同じクライアントって扱うの? 技術者の視点でシステムを見るのであれば、色々なケースやその組み合わせを想定するのが普通だと思います。 色々と面倒くさいことを書いて恐縮ですが、技術者の方であれば仮にJSP/サーブレットが初めてでも、与えられた情報から想像力を働かして、モノを考えたほうが良いかと思います。 まあ、どちらにせよDB(若しくはファイル)を使うのが一番分かりやすそうですね。

evaag777
質問者

補足

JSPをほとんどやった事がない、技術者です。 すみません。ちょっと考えて見ます。

その他の回答 (1)

  • akr
  • ベストアンサー率18% (32/173)
回答No.1

JSPもサーブレットも、長いこと使ってない者です。 最初の一回の定義は? ・デプロイ後の最初の一回? ・サーバーの起動から見た最初の一回? ・クライアント単位で見た最初の一回? ・セッション毎で見た最初の一回? ・その他? どの場合でも、変数でもDBでもいいので何かにアクセスの情報を記録しておけば可能でしょうね。 変数を使う場合は、先に書いた条件によって、定義位置が変わってきます。

evaag777
質問者

補足

ご回答ありがとうございます。 最初の一回とは、 あるページにアクセスした最初の1回で 「クライアント単位で見た最初の一回」に該当すると思います。 よろしくお願いします。

関連するQ&A

  • jsp/サーブレット

    jsp サーブレットを勉強しています。 jspに入力された値を サーブレットに投げます。 サーブレットからjavaクラスに値を投げて javaクラスで値が正しいかどうかを判断します。 その結果をサーブレットに投げて、 サーブレットからjspに投げて jspで結果を表示する。というのは理解できました。 しかし私が行いたいのは、 クライアントがjspにアクセスしたときに、 javaクラスにある値をjspに表示させたいというものです。 この場合はサーブレットに何も投げるものがないのですが、 jsp→サーブレット→javaクラス→サーブレット→jsp このようにサーブレットを使って表示させるには、 どのようなプログラムを書いたらいいのでしょうか。 わかりにくい説明で大変申し訳ないですが、 具体的なプログラムを教えていただけるとありがたいです。 また、参考になりそうなURLがありましたら教えてください。 よろしくお願いします。

  • javaサーブレットでjspへのフォワード処理と、ファイルに出力処理を行いたいのですが。。

    今javaサーブレットとjspでツール作成中です。 DBにアクセスして、その内容をCSVファイルに書き出すというツールなのですが、サーブレットではjspにフォワードという処理と、ファイルに出力という処理の二つを同時に行うことができるのでしょうか。 たくさんの本やサイトにそれぞれ片方の処理だけする場合は載っているのですが、両方を並行して処理させる場合のサーブレットの書き方がわかりません。。 jspからの情報をもとにサーブレットでDAOを生成、DBにアクセスし、検索結果をDTO(一行の情報はBean)に格納し、それをサーブレットからjspにフォワード&CSV出力というものを作りたいと思っています。 よろしくお願いします。

  • 静的ページからのサーブレット起動について

    今、JSPとサーブレットの勉強を行っております。 サーブレット側でデータを取得して JSP側で表示を行いたいと思っているのですが フォームアクション等を行わずに、JSP⇒サーブレット⇒JSPと 実施する事は可能でしょうか? URLアクセス ⇒ JSPからサーブレットの処理を呼び出し ⇒ サーブレットから クラスを利用してデータを取得 ⇒ JSPへデータを渡して表示   というように、URLアクセスのみで一連の処理を行いたいです。 サーブレットからJSPにセッション経由でデータを渡して表示する事や JSPからクラスを利用する方法では成功していますが できるだけMVCモデルに準拠した方法で行いたく思っており かつ、コントローラとしてサーブレットを使ってみたくて このような事に挑戦しております。 可能かどうかだけでもわかると非常に有難いですので ご存知の方、どうかよろしくお願い致します。

    • ベストアンサー
    • Java
  • サーブレットからJSPへフォワード 画像が・・・

    サーブレットからJSPへフォワード 画像が・・・ javaの勉強をしながらサーブレットやJSPを使ったページを作ってるのですが、サーブレットで処理を行った後にJSPへ sc.getRequestDispatcher("/index.jsp").forward(req, res); で転送したら画像が表示されません。 JSPで記述したページを直接開いたりresponse.Redirect(URL)で遷移した場合は画像もちゃんと表示されます。画像だけではなくスタイルシート等も読み込んでいないようなのです・・・orz どうしたらいいのでしょうか? 【ファイル構成】 [プロジェクトフォルダ]  JSPファイル(.jsp)  [image]   画像ファイル  [style]   スタイルシート  [WEB-INF]   [classes]    サーブレットファイル(.class)

    • ベストアンサー
    • Java
  • JSP・サーブレット・HTMLについて・・・

    今、サーブレットとJSPについて勉強しています。 HTMLからサーブレットでリクエストを受け付け、 JSPに転送し表示させたいのですが、フォームからの入力の場合は String carname = request.getParameter("cars"); で入力データを取得するコードを書きますよね? (本ではこう書いてました・・・。) では、HTMLの入力フォームからではなくHTMLのリンク部分を クリックされた時の受付けの場合はどう書けばいいのですか? 勉強を始めたばかりで初心者なので、説明不足の点もあるかも 知れませんが分かりやすくご指導宜しくお願いします…。

    • ベストアンサー
    • Java
  • java、サーブレットなどを勉強しています。html(jsp)のfor

    java、サーブレットなどを勉強しています。html(jsp)のform actionでサーブレットに飛ばしたいとき、レイアウト上別の処理をさせたい(submit)ボタンがあります。 form actionタグはネスト出来ないとの事で、他の方法を探しています。 submitでなく、type="button" でjava script処理と言う解法があるようですが、まだそこまで勉強していないので、ひとつ教えてください。 input type="submit"にvalueがあります、ボタン名になりますが、このvalueは受け手のサーブレットで、読めないのでしょうか。読めればそれによって、処理を分けれるのですが。 あるいは、input type="submit"でサーブレットに別の情報を送る手段はあるでしょうか。 よろしくお願いいたします。

  • JSPからサーブレットにリンクで値を渡す方法

    JSPでget、postではなく、リンクを利用して値を渡す方法はありますでしょうか。 <%--sidを渡してリンク先に飛ぶ--%> <% request.setAttribute("sid",sid) %> <a href="/Keijiban/Connect" target="_self" ><%=sname%></a> というような方法でやっているのですができません。 サーブレットに処理を任せる値を渡し、処理結果をJSPに使うという 処理にしたいのです。 アドレスの後ろに値をつけようと思ったのですが、URLリライティングなので使えません。 何か良い方法などがありましたら、教えてください。 よろしくお願いします。

  • JSP/サーブレットで一般的な入力チェックの仕組みについて

    JSP/サーブレットで一般的な入力チェックの仕組みについて いつもお世話になります。 JSP/サーブレットでWebシステムを作っています。 特別なフレームワークは使っておらず、素のJavaだけで作っているのですが、JSP/サーブレットでWebシステムを開発する場合で、入力チェックでエラーがあった場合、 下記のような動作を実現したいのですが、一般的にはどのような作りになるのでしょうか。 ・画面の入力内容はそのまま ・メッセージ領域にエラーメッセージを表示 ・エラーがあった項目を赤くする これらはJavaScriptでしか実現する方法は無いように思っていますが、できればJavaScriptは 使用しない方向で、最悪3番目はできなくてもよいです。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • JSPから出力されたHTML画面のcloseについて

    こんにちは! 現在、サーブレットからJSPを呼び出して 画面表示させているのですが、その際(JSP呼び出しの時)に「A」と いうJSPを最初に呼んでその中で、「B」、「C」というフレームを 表示していてその「C」でスクリプトの「window.close」を 使っているのですが、画面が閉じません。 最初にサーブレットを呼び出すHTMLで「window.open」を しているのですが、原因が分かりません。 この方法でできればそれはそれでよいのですが、 もし、JSPを呼び出して、画面表示後にすぐ閉じるといった 処理をご存知の方いらっしゃいましたら 教えてください。

    • ベストアンサー
    • Java
  • コントローラの役割はJSPにはやらせないですよね?

    コントローラの役割を、HttpServletだけでなくjspにやらせる構成も 正しい思想の1つなのでしょうか?? 「コントローラ」は、 基本「依頼と、依頼結果をもとにした次の依頼」をする。 という風に役割を捉えていました。 例えば Aに処理依頼をしたあと、 処理が成功したから今度はBに処理依頼をして、 その結果データが 1件以上だったらCに依頼をして、 0件だったら次はDに処理を依頼する。 のような。 そして、それはHttpServletのところにやらせるものなのかと捉えています。 (※間違っているのかもですが。。) しかし、 書こうと思えば、サーブレットを撤廃して、 画面遷移は、x.jsp ⇒ y.jsp ⇒ z.jsp と、サーブレットを介さずにチェーンを作ることも可能だと思います。 (1)そういう仕組もわりと一般的なのでしょうか? (2)jspになんでもやらせすぎると、それぞれのソースが、 ◆A:プレゼンテーション層としての処理なのか?(イテレータでの描画とか) ◆B:ファンクション層の処理なのか?(例えば入力チェック処理など) ◆C:コントローラ層の処理なのか? (各結果を元に、次にどこの処理にどういうデリゲートするのか等処理) がパッと分かりにくく、カオスになりやすいと思っています。 そんな風になるくらいだったら、 コントローラはサーブレットにさせた方が良いと思うのですが、あえて全てJSPにさせるメリットもあったりするのでしょうか? ◆確認 画面遷移は、コントローラの役割だと思っていたのですが、 もしかしたらそこが間違っているのでしょうか? (WEB系の開発かどうかでも違うのかもですが。) .