• 締切済み

servlet 値渡し

servletを含む3つのファイルがあります。 例 struct.java( public String str = "0";) main.java( str = "1";) servlet.java( if( str.equals("1")){ 処理 } ) structで宣言したstrの値をmainで変更し、 その値("1")をservletで受け取りたいのですが どのような方法でやれば受け取れますか? struct.javaでpublicで宣言しているので パラメータ渡しではない方法を探しています。 そもそもservlet経由にするときは、 パラメータではないと無理なんでしょうか? アドバイスお願いします。

みんなの回答

  • agricap
  • ベストアンサー率40% (79/195)
回答No.3

今ひとつ質問の意図を理解できていないのですが・・・ servlet から ServletContext(Applicationスコープの変数の場合) や HttpSession(Sessionスコープの変数の場合)オブジェクトを struct や main 内のメソッドに引数で渡して、書き換えや参照を する、というのではダメなのでしょうか? 少なくとも、こういうやり方なら、 >main.javaはHttpServletクラスではないので >変数が取得できないようです。 という状況にはならないと思います。 「パラメータ渡し」とは何をさしているのでしょうか? メソッドの引数ですか?  

mao4rent
質問者

お礼

説明が不足してましてすみません。 「パラメータ渡し」とはメソッドの引数を言っています。 メソッドの引数を使用するのではなく、 structでpublic定義した変数に値を保持し、 それを使用したいと考えています。 また、スコープはrequestスコープ を使用してます。 2度も回答くださりありがとうございました。

  • agricap
  • ベストアンサー率40% (79/195)
回答No.2

Session スコープもしくは、Application スコープの変数にしてはいかがでしょうか? http://ash.jp/java/webapp_scope.htm

mao4rent
質問者

お礼

URL拝見しました。 main.javaはHttpServletクラスではないので 変数が取得できないようです。 sevletだけで、変数宣言も判断も結果も見るなら いけそうですが。 ありがとうございました。

noname#18558
noname#18558
回答No.1

変数をstaticにしてはどうですか。 --struts.java-- public static String str = "0"; --main.java-- struts.str = "1"; --servlet.java-- if(struts.str.equals("1")){ ※注 ただし、これは意図する動作をするとは限りません。

mao4rent
質問者

お礼

eclipseのservlet上で「structを解決できません」と なり、状況は変わりませんでしたが、参考になりました。 ありがとうございました。