2011-11-01 19 views
5

Desidero reindirizzare la pagina JSP da un servlet. Tutte le pagine JSP sono sotto Web Content. non under Web-INF. Ho un problema nel chiamare le pagine JSP. Ho avuto 404 errori. problema con il percorso.redirect jsp dal servlet RequestDispatcher

Come posso chiamare le pagine jsp in Contenuto Web?

ServletContext context = getServletContext(); 
       RequestDispatcher dispatcher = context.getRequestDispatcher("/thankYou.jsp"); 
       dispatcher.forward(request,response); 

Grazie in anticipo.

PROBLEMA RISOLTO!

+2

L'ho risolto utilizzando come RequestDispatcher requestDispatcher; \t \t \t \t requestDispatcher = request.getRequestDispatcher ("/ thankYou.jsp"); \t \t \t \t requestDispatcher.forward (richiesta, risposta); – kitokid

risposta

13

ho risolto il problema utilizzando RequestDispatcher come questo:

RequestDispatcher requestDispatcher; 
requestDispatcher = request.getRequestDispatcher("/thankYou.jsp"); 
requestDispatcher.forward(request, response); 
7

Un modo un po 'più pulito per scrivere questo codice è:

request.getRequestDispatcher("/thankyou.jsp").forward(request, response); 
0

Usa SendDirect se si desidera lavorare con le pagine JSP

response.sendRedirect("/thankyou.jsp"); 

Questa è la cosa simpe di RequestDispatc lei che non funziona con doPost().

+0

Ovviamente no - una richiesta POST non può essere inviata con "output visivo", che viene restituito al client. Ma non si reindirizza a JSP, ma al percorso mappato per il servlet (quindi il sito viene richiesto dal client tramite GET nuovamente). – UniversE

+0

Con il dispatcher delle richieste possiamo inoltrare gli oggetti di richiesta e risposta alla pagina successiva da una pagina intermedia, il che non è possibile a modo tuo. –

0

Un modo migliore di utilizzare il metodo "sendRedirect()" utilizzando l'oggetto risposta.

si può scrivere come

response.sendRedirect("./newpage.jsp"); 

Questo invierà il controllo alla pagina 'newpage.jsp'.

+0

No, questo è l'ultimo modo sbagliato. Ciò invierebbe un HTTP 302 al client e lo reindirizzerebbe alla pagina JSP, il che renderebbe piuttosto inutile il Servlet. Se metti il ​​tuo jsp nella directory "WEB-INF/view", ad es. non funzionerebbe comunque. – UniversE

0

Questo errore si verifica quando si verifica un errore in java scriptlet del proprio jsp a cui è stata inoltrata la richiesta.
Ad esempio, stavo chiamando <% request.getAttribute ("utente"); %> mentre il problema è stato risolto quando ho usato <% request.getParameter ("utente")%>

Problemi correlati