Olá pessoal,
seguinte, gostaria da ajuda de vocês pra resolver um problema que está me deixando louca… tenho uma aplicação web que controla a quantidade de acessos a uma grande quantidade de serviços de venda online, porém os valores de incremento não são feitos através de servlets ou jsp, são feitos em classes de negócio… é possível atualizar o valor de um objeto que está no contexto de aplicação através de uma classe de negócio ? A única forma de conseguir manipular objetos de aplicação é dentro do contexto de um Servlet, o que devo fazer para atualizar valores de uma lista fora do servlet?
a estrutura das classes é ± assim:
class IncrementadorAcessos
{
//atributos
public void incrementarAcesso(String servico,String codCidade)
{
ArrayList acessos = this.getListaAcessos();
for(int i =0; i< acessos.size(); i++)
{
ServicoOnline so = (ServicoOnline) acessos.get(i);
if(so.equals(servico) && so.equals(codCidade))
{
syncronized(this)
{
int as = so.getTotal() + 1;
so.setTotal(as);
}
}
}
}
}
SevletQQ extend Servlet
{
public void init() throws
{
super.init();
ArrayList listaServicos = (ArrayList) IncrementadorAcessos.getListaAcessos();
this.getServletContext().setAttribute(“acessos”, acessosList);
}
}
public class BOVendasOnLineSP
{
public void contabilizaAcesso()
{
IncrementadorAcessos ia = new IncrementadorAcessos();
ia.incrementarAcesso("VOLSP","Sao Paulo");
}
}
os valores atualizados pela classe IncrementadorAcessos devem ser mostrados em uma pagina jsp, porém depois de incrementar a lista na classe de negócio a lista permanece com valores de quantidade de acessos zerada.
no arquivo jsp recupero a lista do contexo de aplicação e apresento em uma tabela assim:
arquivo.jsp
<% ArrayList acessos = (ArrayList) application.getAttribute(“acessos”); %>
Cidade | Acessos Dia |
<%=so.getCidade()%> | <%=so.getTotal()%> |
Se puderem ajudar agradeço