- 締切済み
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経由にするときは、 パラメータではないと無理なんでしょうか? アドバイスお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- agricap
- ベストアンサー率40% (79/195)
今ひとつ質問の意図を理解できていないのですが・・・ servlet から ServletContext(Applicationスコープの変数の場合) や HttpSession(Sessionスコープの変数の場合)オブジェクトを struct や main 内のメソッドに引数で渡して、書き換えや参照を する、というのではダメなのでしょうか? 少なくとも、こういうやり方なら、 >main.javaはHttpServletクラスではないので >変数が取得できないようです。 という状況にはならないと思います。 「パラメータ渡し」とは何をさしているのでしょうか? メソッドの引数ですか?
- agricap
- ベストアンサー率40% (79/195)
Session スコープもしくは、Application スコープの変数にしてはいかがでしょうか? http://ash.jp/java/webapp_scope.htm
お礼
URL拝見しました。 main.javaはHttpServletクラスではないので 変数が取得できないようです。 sevletだけで、変数宣言も判断も結果も見るなら いけそうですが。 ありがとうございました。
変数をstaticにしてはどうですか。 --struts.java-- public static String str = "0"; --main.java-- struts.str = "1"; --servlet.java-- if(struts.str.equals("1")){ ※注 ただし、これは意図する動作をするとは限りません。
お礼
eclipseのservlet上で「structを解決できません」と なり、状況は変わりませんでしたが、参考になりました。 ありがとうございました。
お礼
説明が不足してましてすみません。 「パラメータ渡し」とはメソッドの引数を言っています。 メソッドの引数を使用するのではなく、 structでpublic定義した変数に値を保持し、 それを使用したいと考えています。 また、スコープはrequestスコープ を使用してます。 2度も回答くださりありがとうございました。