基于JSP + Servlet + JavaBean + JDBC+MYsql 制作一个商品查询,根据用户输入的商品号从数据库中查询该商品信息,或者查询所有商品信息。遵循MVC设计模式,其中视图有queryProduct.jsp、displayProduct.jsp、displayAllProduct.jsp和error.jsp几个页面,Product类实现模型,QueryProductServlet类实现控制器。数据库表为products。
时间: 2024-03-16 09:42:29 浏览: 90
好的,这是一个比较典型的基于MVC设计模式的商品查询应用。以下是大致的实现步骤:
1. 创建数据库表products,包含商品号、名称、价格等字段。
2. 创建Product类,包含商品号、名称、价格等属性,并提供相应的getter和setter方法。
3. 创建QueryProductServlet类,作为控制器,实现对用户请求的处理。
4. 创建queryProduct.jsp页面,包含一个表单,用户可在表单中输入商品号来查询商品信息。
5. 创建displayProduct.jsp页面,用于显示单个商品信息。
6. 创建displayAllProduct.jsp页面,用于显示所有商品信息。
7. 创建error.jsp页面,用于显示错误信息。
具体实现步骤如下:
1. 创建数据库表products
```sql
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price FLOAT NOT NULL
);
```
2. 创建Product类
```java
public class Product {
private int id;
private String name;
private float price;
// getter and setter methods
}
```
3. 创建QueryProductServlet类
```java
public class QueryProductServlet extends HttpServlet {
private static final String QUERY_PRODUCT = "queryProduct";
private static final String DISPLAY_PRODUCT = "displayProduct";
private static final String DISPLAY_ALL_PRODUCT = "displayAllProduct";
private static final String ERROR_PAGE = "error.jsp";
private ProductService productService;
public void init() {
// 初始化ProductService
productService = new ProductService();
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if (QUERY_PRODUCT.equals(action)) {
// 查询单个商品
String idStr = request.getParameter("id");
int id = Integer.parseInt(idStr);
Product product = productService.getProduct(id);
if (product != null) {
request.setAttribute("product", product);
request.getRequestDispatcher(DISPLAY_PRODUCT).forward(request, response);
} else {
request.setAttribute("error", "没有找到该商品!");
request.getRequestDispatcher(ERROR_PAGE).forward(request, response);
}
} else if (DISPLAY_ALL_PRODUCT.equals(action)) {
// 查询所有商品
List<Product> productList = productService.getAllProducts();
request.setAttribute("productList", productList);
request.getRequestDispatcher(DISPLAY_ALL_PRODUCT).forward(request, response);
} else {
// 显示查询表单
request.getRequestDispatcher("queryProduct.jsp").forward(request, response);
}
}
}
```
4. 创建queryProduct.jsp页面
```html
<form action="QueryProductServlet" method="get">
<label>请输入商品号:</label>
<input type="text" name="id" />
<input type="hidden" name="action" value="queryProduct" />
<input type="submit" value="查询" />
</form>
<form action="QueryProductServlet" method="get">
<input type="hidden" name="action" value="displayAllProduct" />
<input type="submit" value="显示所有商品" />
</form>
```
5. 创建displayProduct.jsp页面
```html
<%@ page import="com.example.Product" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>商品信息</title>
</head>
<body>
<h1>商品信息</h1>
<table>
<tr>
<td>商品号:</td>
<td>${product.id}</td>
</tr>
<tr>
<td>商品名称:</td>
<td>${product.name}</td>
</tr>
<tr>
<td>商品价格:</td>
<td><fmt:formatNumber value="${product.price}" type="currency" /></td>
</tr>
</table>
<a href="QueryProductServlet">返回查询页面</a>
</body>
</html>
```
6. 创建displayAllProduct.jsp页面
```html
<%@ page import="com.example.Product" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>所有商品信息</title>
</head>
<body>
<h1>所有商品信息</h1>
<table>
<tr>
<th>商品号</th>
<th>商品名称</th>
<th>商品价格</th>
</tr>
<c:forEach var="product" items="${productList}">
<tr>
<td>${product.id}</td>
<td>${product.name}</td>
<td><fmt:formatNumber value="${product.price}" type="currency" /></td>
</tr>
</c:forEach>
</table>
<a href="QueryProductServlet">返回查询页面</a>
</body>
</html>
```
7. 创建error.jsp页面
```html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<title>错误提示</title>
</head>
<body>
<h1>错误提示</h1>
<p>${error}</p>
<a href="QueryProductServlet">返回查询页面</a>
</body>
</html>
```
这样,一个基于JSP + Servlet + JavaBean + JDBC+MySQL的商品查询应用就完成了。当用户在查询页面输入商品号并提交表单时,QueryProductServlet会根据用户请求进行处理,然后将结果显示在相应的页面中。
阅读全文