.ServletRequestオブジェクトの取得

このQ&Aのポイント
  • Tomcatデプロイ時に起動したWebアプリにおいて、ServletContextListenerを使用してcontextInitialized()メソッドにjavax.servlet.ServletRequestオブジェクトを取得する方法を教えてください。
  • contextInitialized()メソッドはリクエストの前に実行されるため、ServletRequestオブジェクトを取得することはできます。
  • req.getServerName()メソッドを使用するため、取得したServletRequestオブジェクトを使用してサーバーのホスト名を取得できます。
回答を見る
  • ベストアンサー

.ServletRequestオブジェクトの取得

Webアプリ起動時にTomcatが稼働しているサーバーのホスト名を取得 したいと思いメソッドを検索したら以下のメソッドが検索にかかりました。 String serverName=req.getServerName(); これをTomcatデプロイ時に起動し、チェック処理に使用したいので ServletContextListenerを使用して public void contextInitialized(ServletContextEvent arg0) {} メソッドに記述したいと考えています。 そのためにはjavax.servlet.ServletRequestオブジェクトを取得して req.getServerName() を実行しなければいけないのですが ServletRequestの取得の仕方がわからないので教えて頂けますでしょうか。 そもそもcontextInitialized()のメソッド自体がすべてのリクエストに 先立ち実行される処理なのでその時点でServletRequestオブジェクトが 取得できるのでしょうか。もしできないようでしたら何か良い方法は 有りますでしょうか。

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

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

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.2

外部コマンドでhostname取るのもありかも?

unko347
質問者

お礼

ご回答ありがとうございます。 外部コマンドで対応したいと思います。 ありがとうございました。

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

ServletRequestオブジェクトは クライアントからサーバーへのリクエストがあって 初めて出現するものだと思うのよ InetAddress.getLocalHost() とははどお?

unko347
質問者

補足

ご回答ありがとうございます。 教えていただいた InetAddress.getLocalHost() を実行したところUnkownHostExceptionが発生してしまいました。CentOS、Tomcat6の環境で実行しています。 hostsの設定を試してみたいと思います。

関連するQ&A

  • ResultSetオブジェクトのメソッドについて

    AccessでつくったRDBにJDBCで接続してデータを表示させたいのですが、ResultSetオブジェクトのprevious()メソッドやfirst()メソッドを使うとうまくいまず困ってます。 下記のプログラムを実行するとエラーになります。 ------------------------------------------------ (省略) int r = 0; while(resultset.next()){ r++; } while(resultset.first()){ } ------------------------------------------------ 又は ------------------------------------------------ (省略) int r = 0; while(resultset.next()){ r++; } while(resultset.previous()){ String 変数名 = resultset.getString("フィールド名"); // タイトル名を取得/ (省略) ------------------------------------------------ エラー ----------------------------------------------- javax.servlet.ServletException: Result set type is TYPE_FORWARD_ONLY ----------------------------------------------- #カーソルのバックはできない? next()メソッドを使った後に、取得したデータの処理はどの様にすればよいのかがわかりません。 ご教授お願いします。

    • ベストアンサー
    • Java
  • オブジェクト変数の取得

    コモンダイアログを使用して、選択したExcelファイルをAPIの ShellExecute関数で起動を行っているんですが、エクセルファイルを 開いた後に、エクセルのセルのデータを取得したいのです。 オブジェクト変数でエクセルを取得したいのですが、なかなか上手くいきません。 今までは普通に以下のような処理でオブジェクト変数を取得していたのですが set オブジェクト変数 = GetObject("パス") または set オブジェクト変数 = CreateObject("パス") これだど、またエクセルを起動させてしまうので、、 既に起動してしまっているものを取得するのはどうすれば よいのでしょうか? ご教示ねがえませんでしょうか? よろしくお願いいたします。

  • Tomcat5.5.17でDataSourceを使用するとコンパイルエラーになる。

    はじめまして。 現在Tomcat5.5.17を使用しているのですが、DataSourceを使用して Connectionオブジェクトを取得しようとすると、 「javax.servlet.ServletException: Cannot get a connection, pool exhausted」とエラーが表示されます。何が原因でConnectionオブジェ クトが取得できないでいるのでしょうか?どうかご教授お願いします。

    • ベストアンサー
    • Java
  • TOMCATインストール後、コンパイルエラーが起こってしまいます。

    WinXP(home)にTOMCATをインストールしサーブレット/JSPを勉強したいと思っているのでが、うまくいきません。 ○症状 TOMCATインストール語、「Hello Servlet」の文字を表示させるプログラムがコンパイルエラーになってしまいます。 プログラムコードに問題は無いとはずだと思い、TOMCAT以外に、「JRun」というソフトを入れて同じプログラムをコンパイルすると無事完了し、「Hello Servlet」が表示できました。 ○質問 TOMCATのインストールがうまくいっていないのでしょうか? ○TOMCATの動作確認状況 startup.batファイル実行すると、2つ目のプロンプトウィンドウは下記の様になります。 ========================================= サービス Tomcat-Standalone を起動します Apache Tomcat/4.0 サービス Tomcat-Apache を起動します Apache Tomcat/4.0 ========================================== また、 「http://localhost:8080/」は無事に表示されます。 ○コンパイルエラー内容 C:\java_sample>javac -classpath %TOMCAT_HOME%\bin\servlet.jar HelloServlet.java HelloServlet.java:3: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ HelloServlet.java:4: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; ^ HelloServlet.java:6: シンボルを解釈処理できません。 シンボル: クラス HttpServlet 以下省略 ご教授よろしくお願いします。

    • ベストアンサー
    • Java
  • JSP→Servlet間の連携 applicationオブジェクトの渡し方

    どうぞご教授ください。 ---JSP間で値を取得・セットするJSP---、 LocalCfBean cfbean = (LocalCfBean)application.getAttribute("myattr"); ・・・ application.setAttribute("myattr",cfbean); とセットしたcfbeanオブジェクトを別のServletで取り出したいのですが、 ---値を取得するServlet--- HttpSession session = req.getSession(); のような記述はどのようになりますでしょうか。オブジェクト取り出し部分を 具体的に教えていただけますでしょうか

    • ベストアンサー
    • Java
  • このオブジェクトには、オートメーションオブジェクト

    アクセス2010です。 アクセスでフォームにはめ込んでいるサブフォームのデータをフィルタしようとすると ---------------------------------------------------------------------------- このオブジェクトには、オートメーションオブジェクト’カテゴリ’は含まれません。 オブジェクトのプロパティを設定するか、 メソッドを実行するVisual Basicプロシージャを実行しようとしましたが これらのプロパティまたはメソッドが使用できません。 オートメーションオブジェクトでサポートされているプロパティまたはメソッドについては、 コンポーネントのドキュメントを参照してください。 ---------------------------------------------------------------------------- と言うエラーになります。 フォームにカテゴリと言うフィールドは紐づけてないのですが なぜこのエラーが発生するのでしょうか?

  • J2SE 5.0でサーブレットに関して。

    開発環境: Windows XP SP3 Professional java 2 SDK 1.5.0_16 Jakarta Tomcat 5.5 です。 以前java 2 SDK 1.4.2 Jakarta Tomcat 4.0.6 環境で作ったサーブレットを上記の環境でコンパイルしたところ javax.servlet及びjavax.servlet.httpが存在しないとの事で困惑しております。 検索したところj2sdk5.0以降はservlet機能に対応していないとの事ですが、 出来れば今までのプログラムと同じ環境で(基本的なクラスやメソッドが同じ)作成したいのですが、 どのようにすれば宜しいでしょうか。 できれば、今まで作成したプログラムを生かし新しいプログラムを作りたいのです。

    • ベストアンサー
    • Java
  • servlet

    servletで request.getParameter("id"); で、パラメータを取得できますが、 反対にset.Parameter("id","123")のようなメソッドもあるんですか? RequestDispatcher rDispatcher = req.getRequestDispatcher("showQ"); rDispatcher.forward(req, res); を実行して、showQ の中でgetParameterしたいんです。 どうしたらいいんですか?

  • Warファイルデプロイの後について

    お世話になります。 自宅サーバーとしてFedoraCore2を立てております。 JDK、Tomcat等インストールしてWindowsXPにて開発したプロジェクト(実行OK)からWARファイルを作成してFedoraのwebappsフォルダーにデプロイしました。 Tomcat再起動後、プロジェクトの該当フォルダーが作成されいざWEBアプリを実行させようとすると500のエラーになり、「javax.servlet.ServletException: ActionMappingsまたはActionFormBeansコレクションが見つかりません 」という表示がされます。Windows環境では問題なく表示出来ます。 このようなエラーメッセージは開発中に全く表示されませんしネットで調べても今一対応が分かりません。 どうかご存知の方ご教授お願い致します。

    • ベストアンサー
    • Java
  • RequestDispatcherオブジェクトについて。

    データベース表示を行うサーブレットを呼び出す処理を行うには、RequestDispatcherオブジェクトを取得して、そのforwardメソッドを呼び出すだけと聞きましたが、うまくいきません。どなたかどこが悪いか教えてください。 // データベース表示するために、RequestDispatcherを取得 ServletContext cx = getServletContext(); RequestDispatcher rd = cx.getRequestDispatcher( "/netjv/servlet/shuwa.ext_db5_2_1"); // サーブレットを呼び出す rd.forward(request, response); } catch (Exception e) { e.printStackTrace(); } } 後、URL部分にはどこからのパスを書けばよいのでしょうか?あってるか不安です。

    • ベストアンサー
    • Java

専門家に質問してみよう