编写代码实现笔记本信息的录入和查看功能 1.1 编写computer.html页面用于新增笔记本的功能。页面包括1个表单和1个超链接,表单元素包括:笔记本品牌(文本框)、颜色(单选--红色、白色、黑色)、价格(文本框)和提交按钮。超链接跳转到ShowComputerServlet,用于展示计算机信息。 1.2 编写Computer实体类 1.3 编写AddComputerServlet类,实现新增功能。将笔记本对象存入Set集合,再将Set集合存入合适的作用域。 1.4 编写ShowComputerServlet类,实现展示所有笔记本信息的功能。要求分2个<table>展示,第1个表格展示自己新增的笔记本信息,第2个表格展示所有人新增的笔记本信息。
时间: 2023-06-26 22:08:20 浏览: 116
这是一个Java Web的实现方式,具体代码如下:
1. 编写computer.html页面
```html
<!DOCTYPE html>
<html>
<head>
<title>新增笔记本信息</title>
</head>
<body>
<h1>新增笔记本信息</h1>
<form action="addComputer" method="post">
<p>
<label>品牌:</label>
<input type="text" name="brand" />
</p>
<p>
<label>颜色:</label>
<input type="radio" name="color" value="红色" />红色
<input type="radio" name="color" value="白色" />白色
<input type="radio" name="color" value="黑色" />黑色
</p>
<p>
<label>价格:</label>
<input type="text" name="price" />
</p>
<p>
<input type="submit" value="提交" />
</p>
</form>
<p><a href="showComputer">查看笔记本信息</a></p>
</body>
</html>
```
2. 编写Computer实体类
```java
public class Computer {
private String brand; // 品牌
private String color; // 颜色
private double price; // 价格
public Computer(String brand, String color, double price) {
this.brand = brand;
this.color = color;
this.price = price;
}
public String getBrand() {
return brand;
}
public String getColor() {
return color;
}
public double getPrice() {
return price;
}
}
```
3. 编写AddComputerServlet类
```java
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class AddComputerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取请求参数
String brand = request.getParameter("brand");
String color = request.getParameter("color");
double price = Double.parseDouble(request.getParameter("price"));
// 创建笔记本对象
Computer computer = new Computer(brand, color, price);
// 获取session对象
HttpSession session = request.getSession();
// 获取session中的computerSet集合
Set<Computer> computerSet = (Set<Computer>) session.getAttribute("computerSet");
if (computerSet == null) {
computerSet = new HashSet<Computer>();
session.setAttribute("computerSet", computerSet);
}
// 将笔记本对象添加到computerSet集合中
computerSet.add(computer);
// 跳转到computer.html页面
response.sendRedirect("computer.html");
}
}
```
4. 编写ShowComputerServlet类
```java
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class ShowComputerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取session对象
HttpSession session = request.getSession();
// 获取session中的computerSet集合
Set<Computer> computerSet = (Set<Computer>) session.getAttribute("computerSet");
if (computerSet == null) {
computerSet = new HashSet<Computer>();
session.setAttribute("computerSet", computerSet);
}
// 创建两个表格,分别展示自己新增的笔记本信息和所有人新增的笔记本信息
StringBuilder sb = new StringBuilder();
sb.append("<html><head><title>查看笔记本信息</title></head><body>");
sb.append("<h1>自己新增的笔记本信息</h1>");
sb.append("<table border=\"1\"><tr><th>品牌</th><th>颜色</th><th>价格</th></tr>");
for (Computer computer : computerSet) {
sb.append("<tr><td>" + computer.getBrand() + "</td><td>" + computer.getColor() + "</td><td>" + computer.getPrice() + "</td></tr>");
}
sb.append("</table>");
sb.append("<h1>所有人新增的笔记本信息</h1>");
sb.append("<table border=\"1\"><tr><th>品牌</th><th>颜色</th><th>价格</th></tr>");
Set<Computer> allComputerSet = (Set<Computer>) getServletContext().getAttribute("allComputerSet");
if (allComputerSet != null) {
for (Computer computer : allComputerSet) {
sb.append("<tr><td>" + computer.getBrand() + "</td><td>" + computer.getColor() + "</td><td>" + computer.getPrice() + "</td></tr>");
}
}
sb.append("</table>");
sb.append("</body></html>");
// 将结果输出到浏览器
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(sb.toString());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
```
注:在ShowComputerServlet类中,我们不仅展示了自己新增的笔记本信息,还展示了所有人新增的笔记本信息。为了实现这个功能,我们需要在ServletContext域中存储所有人新增的笔记本信息,代码如下:
```java
import java.util.HashSet;
import java.util.Set;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class InitializeListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
Set<Computer> allComputerSet = new HashSet<Computer>();
sce.getServletContext().setAttribute("allComputerSet", allComputerSet);
}
public void contextDestroyed(ServletContextEvent sce) {
}
}
```
这个类实现了ServletContextListener接口,用来监听应用程序的启动和关闭事件。在应用程序启动时,我们创建一个空的Set集合,并将其存入ServletContext域中。这样,在ShowComputerServlet类中,我们就可以获取到所有人新增的笔记本信息了。
阅读全文