PDA

Visualizza la versione completa : [JAVA/JSP] Bentornato/Benvenuto


Aglieglie
15-02-2006, 11:15
Salve ragazzi

Ho un problema, dovrei fare una pagina jsp che mi dica benvenuto la prima volta che accedo e bentornato in seguito. Logicamente sembra fatto bene ma non funziona. Ecco come faccio io:

CODICE SERVLET:


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.lang.String;



public class ServletScelta extends HttpServlet{
public void gotoPage(String address,HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(address);
dispatcher.forward(request, response);
}

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

HttpSession session= request.getSession(true);


String welcome;
Integer accessCount = (Integer)session.getAttribute("accessCount");

if (accessCount == null) {
accessCount = new Integer(0);
welcome="Benvenuto";
}
else
{
welcome="Bentornato";

accessCount = new Integer(accessCount.intValue() + 1);
}

String opzione = request.getParameter("scelta");

Volo volo = new Volo();

volo.setScelta(opzione);
volo.setContatore(accessCount);

session.setAttribute("fly",volo);
session.setAttribute("ben",welcome);
session.setAttribute("conta",volo);


gotoPage("/benvenuto.jsp", request, response);

}

public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
doGet(req,res);
}
}



FINE CODICE SERVLET

CODICE JSP:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Prova intercorso</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">

<%@page contentType="text/html" import="java.util.*, BeanVolo.*" %>

<BODY>
<% String benvenuto = (String) session.getAttribute("ben"); %>
<h1> <%= benvenuto %>


<h1> hai scelto la compagnia: </h1>
<jsp:useBean id="fly" class="Volo" scope="session" />
<jsp:getProperty name="fly" property="scelta" />

<jsp:useBean id="conta" class="Volo" scope="session" />
<jsp:getProperty name="conta" property="contatore" />
INDIETRO (scelta_compagnia.htm)
<hr>

Inserimento Volo (inserimento.jsp)
<hr>
Ricerca Volo (ricerca.jsp)
<hr>
<FORM name="form2" action="scelta_compagnia.htm">
<INPUT name="log_out" type="button" value="LOGOUT"> </INPUT>
</BODY>
</HTML>

Come mai non funziona? cosa ho sbagliato?
Un'altra cosa. Devo fare il modo che l'ultimo form cioè un bottone di logout mi fa scadere la sessione e torna alla pagina scelta_compagnia.htm ma nemmeno qualle funziona, come mai?

Confido in un vostro aiuto
Grazie Ciao

dannie
15-02-2006, 11:49
Per quanto riguarda il problema del benvenuto, può darsi che tu abbia dimenticato di mettere in sessione il contatore di visite? Cioè, dopo:

if (accessCount == null) {
accessCount = new Integer(0);
welcome="Benvenuto";
}
else{
welcome="Bentornato";
accessCount = new Integer(accessCount.intValue() + 1);
}
ci deve essere da qualche parte un'istruzione tipo:

session.setAttribute("accessCount", accessCount)
altrimenti ti metterà ogni volta "benvenuto".
Per quanto riguarda il bottone di logout, volendo mantenere il form come l'hai impostato, devi rendere il bottone un tipo submit e mettere come action del form una servlet (o una pagina jsp) che contenga l'istruzione di invalidazione (session.invalidate()) e rediriga alla pagina che vuoi.
:ciauz:

Aglieglie
15-02-2006, 12:09
Grazie dannie molto gentile.

Ho appena provato il fatto di benvenuto e funziona.
Tra poco proverò il logout ma credo che funzionerà visto la tua affidabilità :D

Molto probabilmente oggi dovrò postare qualche altro problema se ci sei mi fai un piacere ;)

Thanx

Loading