利用mvc模式,创立订单创建的页面,并可以增删改查,包含list.jsp,listServlet,listdao的代码实现
时间: 2023-08-16 21:07:40 浏览: 61
好的,下面是一个简单的订单创建页面的代码实现,使用了MVC模式,包含list.jsp、ListServlet和ListDao三个部分。请注意,这只是个示例,具体实现可能因应用场景不同而有所不同。
1. list.jsp
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>订单列表</title>
</head>
<body>
<h1>订单列表</h1>
<table>
<thead>
<tr>
<th>订单号</th>
<th>客户姓名</th>
<th>订单时间</th>
</tr>
</thead>
<tbody>
<%
List<Order> orderList = (List<Order>) request.getAttribute("orderList");
if (orderList != null && orderList.size() > 0) {
for (Order order : orderList) {
%>
<tr>
<td><%= order.getOrderNumber() %></td>
<td><%= order.getCustomerName() %></td>
<td><%= order.getOrderTime() %></td>
</tr>
<%
}
} else {
%>
<tr>
<td colspan="3">暂无订单</td>
</tr>
<%
}
%>
</tbody>
</table>
<hr>
<h2>添加订单</h2>
<form action="<%= request.getContextPath() %>/list" method="post">
<label for="orderNumber">订单号:</label>
<input type="text" name="orderNumber" id="orderNumber"><br>
<label for="customerName">客户姓名:</label>
<input type="text" name="customerName" id="customerName"><br>
<label for="orderTime">订单时间:</label>
<input type="text" name="orderTime" id="orderTime"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
```
这里的list.jsp是一个订单列表页面,包含一个订单列表和一个添加订单的表单。它使用了JSP标签库,可以通过request对象获取List<Order>类型的订单列表,并展示到页面上。
2. ListServlet
```java
package com.example.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.example.dao.ListDao;
import com.example.model.Order;
@WebServlet("/list")
public class ListServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private ListDao listDao;
public void init() {
listDao = new ListDao();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<Order> orderList = listDao.getAllOrders();
request.setAttribute("orderList", orderList);
request.getRequestDispatcher("/list.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String orderNumber = request.getParameter("orderNumber");
String customerName = request.getParameter("customerName");
String orderTime = request.getParameter("orderTime");
Order order = new Order(orderNumber, customerName, orderTime);
listDao.addOrder(order);
response.sendRedirect(request.getContextPath() + "/list");
}
}
```
这里的ListServlet是控制器,处理用户的请求,并且根据请求的不同调用相应的模型和视图。它使用了@WebServlet注解,可以将URL映射到相应的Servlet上。
在doGet方法中,ListServlet调用ListDao的getAllOrders方法获取所有订单,并将订单列表存储到request对象中,然后转发到list.jsp页面展示。
在doPost方法中,ListServlet从请求参数中获取订单信息,然后调用ListDao的addOrder方法添加订单到数据库中,并重定向到订单列表页面。
3. ListDao
```java
package com.example.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.example.model.Order;
public class ListDao {
private String jdbcURL = "jdbc:mysql://localhost:3306/mydb";
private String jdbcUsername = "root";
private String jdbcPassword = "123456";
private static final String INSERT_ORDER_SQL = "INSERT INTO orders (order_number, customer_name, order_time) VALUES (?, ?, ?)";
private static final String SELECT_ALL_ORDERS_SQL = "SELECT * FROM orders";
protected Connection getConnection() {
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(jdbcURL, jdbcUsername, jdbcPassword);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return connection;
}
public void addOrder(Order order) {
try (Connection connection = getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(INSERT_ORDER_SQL)) {
preparedStatement.setString(1, order.getOrderNumber());
preparedStatement.setString(2, order.getCustomerName());
preparedStatement.setString(3, order.getOrderTime());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Order> getAllOrders() {
List<Order> orderList = new ArrayList<>();
try (Connection connection = getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(SELECT_ALL_ORDERS_SQL);
ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
String orderNumber = resultSet.getString("order_number");
String customerName = resultSet.getString("customer_name");
String orderTime = resultSet.getString("order_time");
Order order = new Order(orderNumber, customerName, orderTime);
orderList.add(order);
}
} catch (SQLException e) {
e.printStackTrace();
}
return orderList;
}
}
```
这里的ListDao是一个数据访问对象(DAO),它可以与数据库进行交互,实现增删改查等操作。ListDao使用了Java数据库连接(JDBC)来访问MySQL数据库。
在ListDao中,我们定义了两个SQL语句,INSERT_ORDER_SQL用于添加订单,SELECT_ALL_ORDERS_SQL用于获取所有订单。我们可以在addOrder方法中调用INSERT_ORDER_SQL来添加订单,调用getAllOrders方法来获取所有订单。
以上就是一个简单的使用MVC模式创建订单创建页面的代码实现,你可以根据自己的需求进行修改和扩展。