创建jsp页面,使用java servlet和java bean,连接数据库bus,选择下拉框中的出发地和目的地,点击查询即可在当前页面显示数据库中的车次信息
时间: 2024-03-12 22:44:59 浏览: 74
好的,这是一个涉及到前端界面、后端逻辑处理和数据库连接的完整项目需求。我会尽力回答你的问题。
首先,你需要在项目中创建一个 JSP 页面,该页面包含一个表单,其中包含出发地和目的地的下拉框、一个查询按钮和一个用于显示查询结果的表格。
在表单中,你需要使用 Java Servlet 和 Java Bean 来处理用户的请求和从数据库中检索数据。具体而言,当用户提交表单时,Servlet 可以将出发地和目的地的值作为参数传递给 Java Bean,Java Bean 然后使用 JDBC API 连接到数据库并查询车次信息。最后,Java Bean 将查询结果返回给 Servlet,Servlet 将其传递给 JSP 页面以进行显示。
以下是一个简单的代码示例,仅供参考:
JSP 页面:
```html
<html>
<head>
<title>Bus Schedule Query</title>
</head>
<body>
<h1>Bus Schedule Query</h1>
<form action="busQuery" method="post">
<label>Departure:</label>
<select name="departure">
<option value="city1">City 1</option>
<option value="city2">City 2</option>
<option value="city3">City 3</option>
</select>
<label>Destination:</label>
<select name="destination">
<option value="city1">City 1</option>
<option value="city2">City 2</option>
<option value="city3">City 3</option>
</select>
<input type="submit" value="Query">
</form>
<table>
<tr>
<th>Bus Number</th>
<th>Departure Time</th>
<th>Arrival Time</th>
</tr>
<c:forEach items="${busList}" var="bus">
<tr>
<td>${bus.number}</td>
<td>${bus.departureTime}</td>
<td>${bus.arrivalTime}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
```
Java Servlet:
```java
@WebServlet("/busQuery")
public class BusQueryServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String departure = request.getParameter("departure");
String destination = request.getParameter("destination");
BusQueryBean bean = new BusQueryBean();
List<Bus> busList = bean.queryBus(departure, destination);
request.setAttribute("busList", busList);
RequestDispatcher dispatcher = request.getRequestDispatcher("busQuery.jsp");
dispatcher.forward(request, response);
}
}
```
Java Bean:
```java
public class BusQueryBean {
public List<Bus> queryBus(String departure, String destination) {
List<Bus> busList = new ArrayList<>();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bus", "root", "password");
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM schedule WHERE departure=? AND destination=?");
stmt.setString(1, departure);
stmt.setString(2, destination);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
Bus bus = new Bus();
bus.setNumber(rs.getString("number"));
bus.setDepartureTime(rs.getString("departure_time"));
bus.setArrivalTime(rs.getString("arrival_time"));
busList.add(bus);
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return busList;
}
}
```
在上面的代码示例中,`Bus` 类代表一辆公交车,包含车次号、出发时间和到达时间等属性。`BusQueryServlet` 类作为 Servlet,负责接收表单提交的请求,并将请求转发给 `BusQueryBean` 类进行处理。`BusQueryBean` 类使用 JDBC API 连接到数据库并执行查询操作,将查询结果封装到 `Bus` 对象中,并返回 `List<Bus>` 类型的查询结果。
请注意,上面的代码示例仅供参考,并不包含完整的错误处理和安全性检查。在实际项目中,你需要根据具体需求进行修改和完善。
阅读全文