11
CSC 2720 Building Web Applications Frameworks for Building Web Applications

CSC 2720 Building Web Applications Frameworks for Building Web Applications

Embed Size (px)

Citation preview

Page 1: CSC 2720 Building Web Applications Frameworks for Building Web Applications

CSC 2720Building Web Applications

Frameworks for Building Web Applications

Page 2: CSC 2720 Building Web Applications Frameworks for Building Web Applications

Model-1 Architecture A web application is made up of many JSP pages

Each JSP page is regarded as the focal point for the entire application.

Each JSP page Contains code for extracting HTTP request parameters,

call the business logic (implemented in JavaBeans, if not directly in the JSP)

Contains the presentation logics

Suitable for small/simple application

Page 3: CSC 2720 Building Web Applications Frameworks for Building Web Applications

Model-2 Architecture Also called Model-View-Controller (MVC)

architecture Model: The data View: Representation of the model Controller: Processes and responds to events (typically

user actions) and update the model accordingly

MVC aims at separating data (model) from user interface (view) so that changes to the user interface will not affect data handling, and that the data can be reorganized without changing the user interface.

Page 4: CSC 2720 Building Web Applications Frameworks for Building Web Applications

Model-2 Architecture in Web Application One servlet serves as controller (Can be more than one

servlet serving as controllers)

The controller handles requests, decides what logic to invoke, and decides what JSP page to apply.

Results are placed in beans (or to objects that can be accessed by the JSP pages.)

Request is forwarded to a JSP page to format result

Different JSP pages can be used to handle different types of presentation

Suitable for large or complicated application

Page 5: CSC 2720 Building Web Applications Frameworks for Building Web Applications

MVC Flow of Control

Source:http://courses.coreservlets.com/Course-Materials/pdf/msajsp/0B-MVC-Review.pdf

Page 6: CSC 2720 Building Web Applications Frameworks for Building Web Applications

Implementing MVC with RequestDispatcher

1. Define beans to represent the data

2. Use a servlet to handle requests Servlet reads request parameters, checks for missing

and malformed data, etc.

3. Populate the beans The servlet invokes business logic (application-specific

code) or data-access code to obtain the results. Results are placed in the beans that were defined in step 1.

Page 7: CSC 2720 Building Web Applications Frameworks for Building Web Applications

Implementing MVC with RequestDispatcher

4. Store the bean in the request, session, or servlet context The servlet calls setAttribute on the request, session, or

servlet context objects to store a reference to the beans that represent the results of the request.

5. Forward the request to a JSP page The servlet determines which JSP page is appropriate t

o the situation and uses the forward method of RequestDispatcher to transfer control to that page.

Page 8: CSC 2720 Building Web Applications Frameworks for Building Web Applications

Implementing MVC with RequestDispatcher

6. Extract the data from the beans. The JSP page accesses beans with jsp:useBean and a

scope matching the location of step 4. The page then uses jsp:getProperty to output the bean properties.

The JSP page does not create or modify the bean; it merely extracts and displays data that the servlet created.

Page 9: CSC 2720 Building Web Applications Frameworks for Building Web Applications

Example of a Controller…public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String operation = request.getParameter("operation"); if (operation == null) operation = "unknown"; String address; if (operation.equals("order")) address = "/Order.jsp"; else if (operation.equals("cancel")) address = "/Cancel.jsp"; else address = "/UnknownOperation.jsp";

RequestDispatcher dispatcher = request.getRequestDispatcher(address); dispatcher.forward(request, response);}

Page 10: CSC 2720 Building Web Applications Frameworks for Building Web Applications

Web Application Framework A web application framework is a software framew

ork that is designed to support the development of dynamic websites and Web applications.

Aims Improve productivity Promote code reuse Minimize errors Reduce cost of maintenance

Typically based on an MVC architecture and include additional libraries.

e.g.: JavaServer Faces (JSF), Struts

Page 11: CSC 2720 Building Web Applications Frameworks for Building Web Applications

References Wikipedia http://courses.coreservlets.com/Course-Materials/