Ho modificato il listner in questo modo:
codice:
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionEvent;
import java.io.FileWriter;
import java.io.IOException;
/**
*
* @author
*/
public class CounterListener
implements ServletContextListener, HttpSessionListener
{
private ServletContext context;
private FileWriter writer;
public void contextInitialized(ServletContextEvent sce) {
context = sce.getServletContext();
context.setAttribute("counter", new Integer(0));
}
public void contextDestroyed(ServletContextEvent sce) {
}
public void sessionCreated(HttpSessionEvent hse) {
this.increment();
}
public void sessionDestroyed(HttpSessionEvent hse) {
this.decrement();
}
synchronized private void increment() {
Integer counter = (Integer)context.getAttribute("counter") + 1;
context.setAttribute("counter", counter);
}
synchronized private void decrement() {
Integer counter = (Integer)context.getAttribute("counter") - 1;
context.setAttribute("counter", counter);
}
}
Togliendo tutto quello che riguarda il log degli accessi che non mi occorre, e la servlet l'ho integrata nella mia jsp (nel file footer.jsp dove andrà visualizzato il contatore)
e adesso ho questa situazione:
codice:
<%@page import="javax.servlet.ServletContext;"%>
<%@page import="javax.servlet.http.HttpSession;" %>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<%
ServletContext context = this.getServletContext();
HttpSession sessione = request.getSession(true);
Integer counter = (Integer)context.getAttribute("counter");
%>
<div id="footer">
Sono presenti <%= counter %> Utenti online | Tool di Monitoraggio per xXx realizzato da xXx
</p>
<a href="http://apycom.com/">
</a>
</div>
Ma al momento in cui carica la pagina mi da questo errore:
codice:
11:54:28,169 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 6 in the generated java file
Syntax error on token ";", delete this token
Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:335)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:313)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:300)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
dove sbaglio?