documentation/manual/tutorial/PlayApplicationOverview.md
This tutorial is implemented as a simple Play application that we can examine to start learning about Play. Let's first look at what happens at runtime. When you enter http://localhost:9000/ in your browser:
/ URI from the HTTP server using the GET method.routes file, which maps URIs to controller action methods.index page, using Twirl templates.At a high level, the flow looks something like this:
[[images/play-request-response.png]]
Next, let's look at the tutorial project to locate the implementation for:
Follow these steps to drill down into the source files:
Note: In the following procedures, for Windows shells, use \ in place of / in path names (no need to change URL path names though).
Using a command window or GUI, look at the contents of the top-level project directory. The following directories contain application components:
app subdirectory contains directories for controllers and views, which will be familiar to those experienced with the Model View Controller (MVC) architecture. Since this simple project does not need an external data repository, it does not contain a models directory, but this is where you would add it.public subdirectory contains directories for images, javascripts, and stylesheets.conf directory contains application configuration. For details on the rest of the project's structure see [[Anatomy of a Play Application|Anatomy]].To locate the controller action method, open app/controllers/HomeController.java (or .scala) file with your favorite text editor. The Homecontroller class includes the index action method, as shown below. This is a very simple action method that generate an HTML page from the index.scala.html Twirl template file.
Java : @hello-world-index-action
Scala : @hello-world-index-action
To view the route that maps the browser request to the controller method, open the conf/routes file. A route consists of an HTTP method, a path, and an action. This control over the URL schema makes it easy to design clean, human-readable, bookmarkable URLs. The following line maps a GET request for the root URL / to the index action in HomeController:
Open app/views/index.scala.html with your text editor. The main directive in this file calls the main template main.scala.html with the string "Welcome to Play" to generate the page. You can open app/views/main.scala.html to see how a String parameter sets the page title.
With this overview of the tutorial application, you are ready to add a "Hello World" greeting.