Reference no: EM133576892
You have been tasked to develop a web application that displays information from a MySQL database using servlets and JSP. The application should have the following functionalities:
1. The web application should have a homepage that displays a list of available products in a grid view with pagination.
2. When a user clicks on a product, they should be taken to a product details page that displays additional information about the product such as product images and related products.
3. The product information should be retrieved from a MySQL database using JDBC and caching techniques to improve performance.
4. The database should contain three tables - products, categories, and product_images. The products table should have columns for product_id, product_name, description, price, and category_id. The categories table should have columns for category_id and category_name. The product_images table should have columns for image_id, product_id, and image_url.
5. The product details page should display the product name, description, price, category name, and all the product images.
6. The web application should have a search functionality that allows users to search for products by name, category, or price range.
7. The search results page should display a list of products that match the search query and show the number of results found. 8. The web application should have a form that allows users to add new products to the database, along with multiple images for each product.
9. You should also implement proper error handling to gracefully handle exceptions during database operations and form submissions.
10. You can choose to use any server of your choice.