Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[JSP] variazione var di sessione

0 views
Skip to first unread message

Cor_Pie()

unread,
Apr 10, 2003, 10:25:15 AM4/10/03
to
devo effettuare un aggiornamento di una variabile di sessione senza però
invalidare tutta la sessione, cioè gli altri attributi della sessione a
parte quello da variare devono restare inalterati, avevo pensato ad una
soluzione del genere.

Sia la variabile di sessione da variare "CREDITO" a seguito di una
operazione di ricarica. Ecco riportato il codice della pagina

<center>
il tuo credito era <%=session.getAttribute("CREDITO")%>
</center>

<!-- recupero la ricarica da una form-action -->
<%
String ric=(String)request.getParameter("ric");
int ricarica=Integer.parseInt(ric);
%>

<!-- calcolo il nuovo credito -->
<%
String credito=(String)session.getAttribute("CREDITO");
int nuovo_cred=(Integer.parseInt(credito))+ricarica;
Integer park=new Integer(nuovo_cred);
String nuovo_credito=park.toString();
%>

<!-- aggiorno la var al nuovo valore -->
<%
session.removeAttribute("CREDITO");
session.setAttribute("CREDITO",nuovo_credito);
%>

<center>
<br> ora il tuo credito è <%=session.getAttribute("CREDITO")%>
<br> Ciao
</center>


purtroppo non mi funziona, malgrado credo non abbia commesso errori. Ecco il
msg di errore che Tomcat mi ritorna


org.apache.jasper.JasperException
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
48)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:260)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:386)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:530)
at java.lang.Thread.run(Thread.java:536)

root cause

java.lang.ClassCastException
at org.apache.jsp.ricarica_jsp._jspService(ricarica_jsp.java:60)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
04)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:260)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:386)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:530)
at java.lang.Thread.run(Thread.java:536)

Gaetano Bigliardi

unread,
Apr 10, 2003, 10:43:54 AM4/10/03
to
Cor_Pie() wrote:
> <!-- calcolo il nuovo credito -->
> <%
> String credito=(String)session.getAttribute("CREDITO");
> int nuovo_cred=(Integer.parseInt(credito))+ricarica;
> Integer park=new Integer(nuovo_cred);
> String nuovo_credito=park.toString();
> %>
> [...]
> java.lang.ClassCastException
> at org.apache.jsp.ricarica_jsp._jspService(ricarica_jsp.java:60)

ClassCastException: esegui un cast ad una classe diversa da quella
presente in sessione. Dato che esegui un solo cast il principale
indiziato č la riga:

String credito = (String) session.getAttribute("CREDITO");

Prova a stampare:

<%= session.getAttribute("CREDITO").getClass().getName() %>

Inoltre potresti memorizzare in sessione direttamente un oggetto di
classe Integer senza trasformarlo in stringa.


Gaetano Bigliardi

Cor_Pie()

unread,
Apr 10, 2003, 3:46:53 PM4/10/03
to
ho risolto.... grazie Gaetano..

"Gaetano Bigliardi" <g.big...@expertweb.it> ha scritto nel messaggio
news:b73vs9$a492n$1...@ID-185876.news.dfncis.de...


> Cor_Pie() wrote:
> > <!-- calcolo il nuovo credito -->
> > <%
> > String credito=(String)session.getAttribute("CREDITO");
> > int nuovo_cred=(Integer.parseInt(credito))+ricarica;
> > Integer park=new Integer(nuovo_cred);
> > String nuovo_credito=park.toString();
> > %>
> > [...]
> > java.lang.ClassCastException
> > at org.apache.jsp.ricarica_jsp._jspService(ricarica_jsp.java:60)
>
> ClassCastException: esegui un cast ad una classe diversa da quella
> presente in sessione. Dato che esegui un solo cast il principale

> indiziato è la riga:

0 new messages