1 / 23

SOEN 6011 Software Engineering Processes

SOEN 6011 Software Engineering Processes. Section SS Fall 2007 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/soen6011-f2007.html. Week 6. Servlets and JSP Larman Controller Principle Fowler Front Controller GoF Command pattern Java reflection to instantiate Command.

lave
Download Presentation

SOEN 6011 Software Engineering Processes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOEN 6011Software Engineering Processes Section SS Fall 2007 Dr Greg Butler http://www.cs.concordia.ca/~gregb/home/soen6011-f2007.html

  2. Week 6 • Servlets and JSP • Larman Controller Principle • Fowler Front Controller • GoF Command pattern • Java reflection to instantiate Command

  3. Servlets, The General Idea • Applet as a client side Java application. • Servlet as a server side technology for implementing part of the functionality of an application. • HTTP (URL) requests cause a servlet to be: • Instantiated (if it did not exist). • Run. • The servlet builds a response which is then sent back to the client (usually in the form of HTML).

  4. Servlet: HelloWeb public class HelloWebServlet extends HttpServlet { protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletOutputStream out = response.getOutputStream(); out.println("Hello Web!"); } }

  5. Java Server Page • Servlet: • Embed HTML inside code. • JSP • Embed code inside HTML.

  6. HelloWeb.jsp <%@ page contentType="text/html; charset=iso-8859-1" language="java" ... %> <html> <body> Hello Web! </body> </html>

  7. Hello.jsp <%@ page contentType="text/html; charset=iso-8859-1" language="java" ... %> <html> <body> Hello <%= request.getParameter("name") %> </body> </html>

  8. Java Server Page • Implemented as a (special kind of) servlet.

  9. Controller Illustration: Web-based EA

  10. PATTERN: Controller • What object in the domain (or application coordination layer) receives requests for work from the UI layer?

  11. PATTERN: Controller (Larman 17.13) Problem: What object in the domain (or application coordination layer) receives requests for work from the UI layer? System operations (see SSD): major input events to the system The controller is the first object beyond the UI layer that is responsible for receiving or handling a system operations message. Note that UI objects delegate system operation request to a controller.

  12. PATTERN: Controller (Larman 17.13) Solution: Assign the responsibility to a class representing one of the following choices: • A façade controller, which represents • the overall system • A root object • A device that the software is running within, or • A major subsystem • A use case or session controller which represents a use case scenario in which the system operation occurs

  13. Fig. 17.21

  14. Fowler’s EA Patterns Page Controller Template View Presentation Front Controller Transform View Domain Model Transaction Script Domain Table Module Active Record Data Mapper Table Data Gateway Row Data Gateway Data Source

  15. Front Controller Fowler: A controller that handles all requests for a web site. The Front Controller consolidates all request handling by channeling requests through a single handler object. This object can carry out common behaviour which can be modified at runtime with decorators. This handler then dispatches to command objects for behaviour particular to a request.

  16. Front Controller GoF design pattern: Command Use a Command object to encapsulate the steps that are executed by a command. Command::doIt() executes command Allows Command::unDoIt() etc GoF design pattern: Decorator Decorator::m() adds additional behaviour, but delegates to real Object::m() for real behaviour Eg, logging command execution before/after executing command

  17. Page vs Front Controller – Differences in URL Page Controllers for A1 • http:/stu.cs/343A1/ViewTaskList • http:/stu.cs/343A1/AddTask • http:/stu.cs/343A1/RemoveAllTasks • … Front Controller for A1 • Base URL: http:/stu.cs/343A1/frontController • …/frontController?command=ViewTaskList • …/frontController?command=AddTaskGrade&title=abc&…

  18. Front Controller

  19. Front Controller

  20. Front Controller: Sequence Diagram

  21. Front Controller: ProcessRequest

  22. Front Controller (cont’d)

More Related