Question
Answer and Explanation
Receiving a search request in a controller depends on the framework you are using. Here are some common scenarios and examples:
1. Spring MVC (Java):
In Spring MVC, you can receive search requests using @RequestParam
or @ModelAttribute
. Let's consider receiving a search query via a GET request.
Example:
@Controller
public class SearchController {
@GetMapping("/search")
public String handleSearch(@RequestParam("query") String searchQuery, Model model) {
// Process the search query
List
model.addAttribute("results", results);
return "search_results";
}
}
In this case, the searchQuery
parameter is extracted from the request using @RequestParam("query")
.
2. Django (Python):
In Django, you can access the request parameters through the request.GET
or request.POST
dictionary, depending on the HTTP method used.
Example:
def search_view(request):
if request.method == 'GET':
query = request.GET.get('q', '') # 'q' is the name of the query parameter
# Process the search query
results = search_function(query)
return render(request, 'search_results.html', {'results': results})
else:
return HttpResponse("Only GET requests are allowed")
Here, request.GET.get('q', '')
retrieves the value of the query parameter named 'q'. The second argument provides a default value if the parameter is not present.
3. Express.js (JavaScript/Node.js):
In Express.js, you can access query parameters using req.query
.
Example:
app.get('/search', (req, res) => {
const query = req.query.q;
// Process the search query
const results = searchFunction(query);
res.render('search_results', { results });
});
The req.query.q
retrieves the value of the 'q' query parameter.
4. Laravel (PHP):
In Laravel, you can use the request()
helper function or inject the Request
object to access query parameters.
Example:
public function search(Request $request)
{
$query = $request->input('q');
// Process the search query
$results = SearchService::search($query);
return view('search_results', ['results' => $results]);
}
Here, $request->input('q')
retrieves the value of the 'q' input parameter from the request.
Regardless of the framework, the basic steps involve:
1. Accessing the request object.
2. Retrieving the value of the query parameter (usually a string).
3. Sanitizing/Validating the input to prevent security issues (e.g., SQL injection, XSS).
4. Using the query to perform the search.
5. Returning the results.