
setAttribute(String, int)は適用できない
今、servletでセッションの勉強をしています。
ある本に載っているソースコードをそのままコピーしたんですが、
「HttpSessionのメソッド setAttribute(String, Object)は(String, int)に適用できません。」
…というエラーが出て動きません。
こういう場合、実行するにはどうしたら良いのでしょうか?
アクセスした回数をカウントすることなんてよくあると思うんです。
intも(Stringなんかも)Objectの下に含まれてるんじゃないんですか?
intでも良い気がするんですけど…。
一応、ソースコードを貼っておきます:
### Sample229TestServlet.java ###
package com.tips;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class Sample228TestServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
private int count = 0;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=Shift_JIS");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
session.setAttribute("param",count++); //問題の箇所
out.println("<html><head><title>Sample228</title></head><body>");
out.println("<h2>SessionAttributeListenerの例</h2>");
out.println("sessionの属性countが" + count + "に変化しました。");
out.println("</body></html>");
out.close();
}
}
### Sample228.java ###
package com.tips;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
public class Sample228 implements HttpSessionAttributeListener {
public void attributeAdded(HttpSessionBindingEvent event) {
}
public void attributeRemoved(HttpSessionBindingEvent event) {
}
public void attributeReplaced(HttpSessionBindingEvent event) {
ServletContext app = (event.getSession()).getServletContext();
app.log(">> Sample228 Listener detects attribute changed.");
}
}
…必要であれば補足します。では、宜しくお願いします。
No.1ベストアンサー
- 回答日時:
int はプリミティブ型なので、Objectクラスのサブクラスにはあたりません。
> session.setAttribute("param",count++); //問題の箇所
の部分は、ラッパークラスを使用して、
session.setAttribute("param", new Integer(count++));
等としておくと、コンパイルできるんじゃないかな。
仰る通りnew Integer(count++)にしたら、コンパイルできました!
ラッパークラスとかまだよく分からないですけどこれから勉強します。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Java java final 1 2022/06/10 22:49
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Swingなしで画像ファイルロード
-
import文はルートクラス指定と...
-
HTMLでのTableタグデータ取得方法
-
Java Applet での虫食い算での質問
-
ログイン認証についてjavaとブ...
-
Java swing RTFファイル 文字化...
-
Timestamp型への変換について(J...
-
画像を重ね表示するアプレット
-
JPEG画像のみを印刷したいので...
-
生年月日と今日の日付から年齢...
-
Activityクラスの取得方法
-
(急募)JavaカレンダーをGUI可に...
-
フレームの×ボタンを押しても閉...
-
c:importタグ内に、変数をセッ...
-
?__mode=rssのRSSデータからト...
-
eclipseに記述したjavaファイル...
-
Android用ゲームを作っています。
-
javaの代入演算式がうまくいき...
-
Androidで画面遷移ができません.
-
アルファベットのソート
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
ColabでのPytorchのエラー
-
<forEach> 内で供給された "ite...
-
setAttribute(String, int)は適...
-
シャットダウンフックが呼ばれない
-
importするには java.io.*; imp...
-
python OpenPyXLを使って出力結...
-
Javaを使ってデジタル時計を作...
-
HTMLでのTableタグデータ取得方法
-
Java での グローバルIP取得
-
Xercesを使ったjavaでのXML解析
-
JavaMailについて
-
コンパイルができません…
-
GridBagLayoutについての質問
-
透過GIFの判定の仕方ありますか?
-
サーバーAからサーバーBへPOST...
-
ある年月の前月(月の開始日)...
-
jFrameを使って複数の画面を生...
-
文字列を数式に
おすすめ情報