※ ChatGPTを利用し、要約された質問です(原文:setAttribute(String, int)は適用できない)
setAttribute(String, int)は適用できない
2010/04/09 17:28
setAttribute(String, int)は適用できない
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.");
}
}
…必要であれば補足します。では、宜しくお願いします。
質問の原文を閉じる
質問の原文を表示する
お礼
仰る通りnew Integer(count++)にしたら、コンパイルできました! ラッパークラスとかまだよく分からないですけどこれから勉強します。 ありがとうございました!