using ServletContext.setAttribute don't store the attribute
Désolé, je n'avais pas initialisé la variable c :oops:
Bonjour,
je débute en Servlets, et je bloque sur l'utilisation des servletContexts.
Je veux initier des objets (threads) dans un ServletContextListener. Et je veux y accéder à partir de mes servlets.
dans mon listener, j'ai
Code:
1 2 3 4 5 6 7 8
| @Override
public void contextInitialized(ServletContextEvent event) {
ServletContext sc = event.getServletContext();
thread = new Thread(new Counter());
thread.start();
sc.setAttribute("com.airbus.mcctls.counter", c);
System.out.println("attribut = "+sc.getAttribute("com.airbus.mcctls.counter"));
} |
déjà, le sysout me sort un "attribut = null". Pas bon.
ensuite, dans ma servlet j'ai
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
try {
Counter c = (Counter)getServletContext().getAttribute("counter");
out.println("the current count is "+c.i);
} catch (Exception e) {
e.printStackTrace(out);
}
} |
Evidement, dans ma servlet, j'ai null. J'ai vérifié que l'adresse de sc et getServletContext() pointent sur le meme objet.
est ce que qq peut me débloquer?
merci