[MUSIC] Data that's sent from the clients to the server, doesn't have to just be embedded in the HTTP request frames. For example, often we see links where the link itself has some semantic meaning to it. So, for example, the path that's specified in that link, or the path that's specified in the HP request, actually has data embedded into it that we'd like to extract. And this is, for example, a typical thing you'll see in a rest architecture, which we'll talk about later in this course. So lemme give you an example, let's say. Rather than just sending a request where we're embedding all of the search strings into the HP request parameters to search in our contacts, let's say, for example, we wanted to be able to have links that looked like slash search a. And that would return the list of all contacts that started with a or slash search ab, and it would give us all the contacts that started with ab. And why we, we want to do this? Well, it's usually easier to share a link that looks very nice and clean, which is just embedded in the path, rather than having a question mark in all of these request parameters falling in off the end of it. Or in sharing a post, obviously isn't something you can do. You can't just share a link for an HTTP post. So, often we want to have nice clean looking links that are easy to access in the browser and make sense for sharing or other purposes. So there's a easy way to do this in spring, to extract data that might be specified in the request path. Rather than in the request parameters. And the way we do that is first we have to create a request mapping that is to something variable. So we're going to say at search. And then we're going to do something interesting here. We're going to add a bracket. And we're going to say the string that we're searching for. And then we'll close this off. And what this is going to the Spring Dispatcher Server to do is to look at the request path. And, anything that is search slash any string, or any integer, or anything, is going to be routed to this request. So what we're doing here, is we're specifying a path variable. And that's what the open braces and closed braces around this string. Is just defining a variable and the string doesn't represent the type here, I want to know. This is just an arbitrary identifier that I'm given for this variable. So I'm saying look for a request, where the path has this format, slash search slash some path variable that I'm looking for that has a arbitrary value. Now what we then need to do is tell the Spring Dispatcher Server, how to extract those path variables that we care about, and get them into the method parameters. So what we do, is we say @PathVariable, and then we can say, string. And what that will tell spring to do is automatically extract, this, string from the path, and, convert it, into, this parameter, for the method call. So what this allows us to do. Is to have some of the data embedded in a request parameter, and some data embedded in a PathVariable. And we can combine and mix and match these approaches for extracting data from the request. We can have some data that lives in the PathVariable. Now we can have all of the data living in the request past and extracted via the PathVariables, or we can have all of the data living in the request parameters or any mixture of them. And all of them serve the same purpose, to tell the Dispatch Servlet, how to extract information the client has embedded in the request. And convert it into the arguments that are needed to the, be passed to the method. So if we want to go and change our architecture and change how the data's passed from the client to the server, all we have to do is go and update these variables I mean these annotations specifying how the method vari, the method parameters are mapped by the Dispatcher Server. So we can change this PathVariable to a request parameter or this request parameter of PathVariable and we can do that over and over. And it separates our logic from the logic of extracting the information from the request or from the request path