Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification.
The following page has been changed by MichaelJouravlev: http://wiki.apache.org/struts/StrutsQuickStartServletJSP ------------------------------------------------------------------------------ - == Employee list with pure Servlet + JSP (Model 2) == + == Employee list with Servlet + JSP (Model 2) == + + Model 2 offers some benefits over simple Model 1 approach, for example the data-preparation code can be pulled out of JSP file into a servlet, leaving JSP with purely presentation tasks. This makes JSP pages smaller, cleaner and simpler. Also, a servlet can easily swap one presentation with another by changing the name of a JSP page it forwards too. Overall design of Model 2 application is more structured and flexible, though requires more files and more configuration. + + This application produces exactly the same employee list as original JSP application. inline:employee_list.gif + When request is sent from the browser, the servlet gets called first. It contains all data preparation tasks and looks like this: - One can argue that JSTL 2.0 greatly simplifies access to dynamic data from JSP, therefore pure JSP applications look less cluttered. Nevertheless, Model 2 allows additional benefits. With Model 2 approach, the data-preparation code is located in a servlet, while JSP performs purely presentation tasks. This makes JSP pages smaller, cleaner and simpler. Also, a servlet may easily replace one presentation with another by changing the name of a JSP page it forwards too. Overall design is more structured. - - Here is how the servlet would look like: {{{public class EmployeeListServlet extends HttpServlet { @@ -15, +17 @@ { HttpSession session = request.getSession(); - // Prepare data for output + // Prepare data for output, store it in the session scope if (session.getAttribute("employees") == null) { session.setAttribute("employees", EmployeeManager.loadEmployees()); } @@ -28, +30 @@ } }}} - The request is processed by the servlet, then the servlet forwards to "/jspservlet/employees.jsp" page, which displays the result: + After the request is processed by the servlet, the servlet forwards to "/jspservlet/employees.jsp" page, which displays the result: {{{<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <body> + <table> <tr> <th align="left">Emp #</th> @@ -48, +51 @@ </tr> </c:forEach> </table> + </body> </html>}}} + Notice that data access code is removed and the page looks almost like regular HTML. This simplifies making changes to the markup of this page in an HTML editor. + + [:StrutsQuickStart1:Next: converting servlet-based application into Struts application] +
