Newsgroup: it.comp.java
Titolo: JSP e Servlet

Salve ragazzi,
ho un problema.
Nella mia web Application ho una Servlet chiamata HomeServlet che si
occupa di indirizzare l'utente verso la pagina "homeNotLogin.jsp" o
"homeLogin.jsp" a seconda che questo sia loggato o meno.
Ho provato ad avviare la web-application su tomcat, si carica e tutto
ok, però quando la homeServlet invia l'utente verso la
"homeNotLogin.jsp" quest'ultima esegue la LoginServlet prima che venga
inserito nome utente e password.
Spero di essere stato chiaro esponendo il problema.
Alberto


Mica tanto chiaro.
1) Come "chiami" la jsp? con un forward?
2) Che intendi per "esegue la Login Servlet"? Quale meotodo esegue?
3) Non è che nella jsp hai qualche cosa sull'onLoad del Form?

 wrote:


Certo, ora vi posto il codice.
Ecco qui.
1. Il metodo con cui viene richiamata la login servlet nella JSP e il
seguente:
<form action="/provaJSP/LoginServlet" method="get">
			<p><input type="text" name="user"/>user</p>
			<p><input type="password" name = "password"/>password</p>
			<p><input type="submit" value = "login"/></p>
</form>
2. La HomeServlet richiama la homeNotLogin.jsp attraverso questa
funzione:
dispatcher = this.getServletContext().getRequestDispatcher(url);
dispatcher.forward(req, resp);
dove url = "/WEB-INF/jsp/homeNotLogin.jsp"
Premetto che se faccio avviare la JSP dando semplicemente il suo
indirizzo (e quindi non richiamandola tramite la HomeServlet) non c'è
alcun tipo di problema.
Spero che qualcuno sia a conoscienza di un metodo per risolvere il mio
problema.
Alberto

 2. La HomeServlet richiama la homeNotLogin.jsp attraverso questa
La LoginServlet vorra dire?
-- 
Andrea Francia
http://www.andreafrancia.it/

 Alberto
Non mi hai risposto: quale metodo viene invocato?
Ci fai vedere la mappatura delle servlet nel web.xml?

Chiedo Scusa!
Ecco il file .xml:
<web-app>
	<servlet>
		<servlet-name>HomeServlet</servlet-name>
		<servlet-class>servlet.HomeServlet</servlet-class>
		<servlet-name>LoginServlet</servlet-name>
		<servlet-class>servlet.LoginServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>HomeServlet</servlet-name>
		<url-pattern>/HomeServlet</url-pattern>
		<servlet-name>LoginServlet</servlet-name>
		<url-pattern>/LoginServlet</url-pattern>
	</servlet-mapping>
</web-app>
La LoginServlet dovrebbe creare un oggetto "User" nella sessione, ma
ora sono ancora in fase di test e fa semplicemente questo:
PrintWriter writer = null;
String user = null;
String password = null;
user = req.getParameter("user");
password = req.getParameter("password");
writer = resp.getWriter();
writer.println("LoginServlet Eseguita con successo!");
writer.println(user + password);
writer.close();

 </web-app>
questa configurazione è sbagliata, tanto per cominciare.
ciascun tag servlet può contenere *un* servlet-name e *una* 
servlet-class. stesso ragionamento per il mapping.
-- 
 Fino all'anno scorso avevo un solo difetto. Ero presuntuoso.
http://softvalley.blogspot.com
http://www.flickr.com/photos/marko_po/

OK!
Ti ringrazio, ho provato cosi e funziona. Avrei una domanda, se io
volessi usare del codice JAVA nella JSP HomeLogin.jsp che richiamo
dalla HomeServlet, come devo modificare il mio file web.xml?
Grazie in anticipo
Alberto