Originariamente inviato da matthew80
La servlet gestisce questa richiesta, poi decidere di "passarla" ad una JSP per gestirla ulteriormente
Questo modo di servire la richiesta, cioè Servlet--->Jsp lo si usa generalmente per mettere in atto il pattern MVC. La servlet fa da "controller", riceve la richiesta, controlla i dati in input, invoca altre entità per accedere ad esempio ad un DB e poi imposta dei dati tipicamente nella "session" o nella "request" ma non genera alcun output!! La JSP fa la parte della "view" e si occupa solamente di prendere i dati dalla request/session e generare il codice HTML (o altro tipo).
Originariamente inviato da matthew80
Ti spiego, per vedere la visibilità di una variabile in un metodo basta che controllo le parentesi graffe. Qui non ho capito di preciso che devo controllare
Non centrano, per questi "scope", le parentesi graffe!! (a parte per "page" che è poi il 'this' nella pagina JSP) Gli oggetti messi in questi scope (request/session/context) sono memorizzati in apposite "mappe".
codice:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("nomeBean", tuoOggettoBean);
}
Quindi non si tratta di una questione "strutturale" del codice ma di quanto "vive" l'oggetto che contiene i dati di quello scope. Quando fai un forward, passi i reference di request e response ... e quelli continuano a vivere! Quindi anche l'oggetto referenziato da tuoOggettoBean.