Java Servlet 实现商品购买功能:从页面表单到成功页面
Java Servlet 实现商品购买功能:从页面表单到成功页面
本教程将带您一步一步实现一个简单的商品购买功能,涉及 HTML 表单创建、Servlet 数据处理、计算总价、响应成功页面,以及解决中文乱码等问题。
1. 创建购买商品 HTML 页面
首先,创建一个名为 buy.html 的 HTML 页面,包含商品信息的表单,其中包含商品名、价格、类型、厂家和数量等字段。此外,还包含一个提交按钮。
<!DOCTYPE html>
<html>
<head>
<title>购买商品</title>
</head>
<body>
<form action='/buy' method='post' accept-charset='UTF-8'>
<label for='name'>商品名:</label>
<input type='text' id='name' name='name' required><br><br>
<label for='price'>价格:</label>
<input type='number' id='price' name='price' required><br><br>
<label for='type'>类型:</label>
<input type='text' id='type' name='type' required><br><br>
<label for='manufacturer'>厂家:</label>
<input type='text' id='manufacturer' name='manufacturer' required><br><br>
<label for='quantity'>数量:</label>
<input type='number' id='quantity' name='quantity' required><br><br>
<input type='submit' value='提交'>
</form>
</body>
</html>
2. 创建处理购买逻辑的 Servlet
接下来,创建一个名为 BuyServlet 的 Servlet 类,用于处理购买商品的逻辑。该 Servlet 会接收表单数据,计算总价,并跳转到购买成功页面。
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class BuyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置请求参数编码为 UTF-8
request.setCharacterEncoding("UTF-8");
// 获取商品表单数据
String name = request.getParameter("name");
double price = Double.parseDouble(request.getParameter("price"));
String type = request.getParameter("type");
String manufacturer = request.getParameter("manufacturer");
int quantity = Integer.parseInt(request.getParameter("quantity"));
// 计算总价
double totalPrice = price * quantity;
// 将相关数据及总价响应到客户端
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("购买成功!");
response.getWriter().println("商品名:" + name);
response.getWriter().println("价格:" + price);
response.getWriter().println("类型:" + type);
response.getWriter().println("厂家:" + manufacturer);
response.getWriter().println("数量:" + quantity);
response.getWriter().println("总价:" + totalPrice);
}
}
3. 创建购买成功页面
创建一个名为 success.html 的 HTML 页面,用于显示购买成功的提示信息,以及购买商品的相关信息和总价。
<!DOCTYPE html>
<html>
<head>
<title>购买成功</title>
</head>
<body>
<h1>购买成功!</h1>
<p>商品名:{{商品名}}</p>
<p>价格:{{价格}}</p>
<p>类型:{{类型}}</p>
<p>厂家:{{厂家}}</p>
<p>数量:{{数量}}</p>
<p>总价:{{总价}}</p>
</body>
</html>
4. 配置 Servlet 映射路径
在 web.xml 文件中配置 BuyServlet 的映射路径,将 /buy 路径映射到 BuyServlet 类。
<servlet>
<servlet-name>BuyServlet</servlet-name>
<servlet-class>com.example.BuyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BuyServlet</servlet-name>
<url-pattern>/buy</url-pattern>
</servlet-mapping>
5. 解决中文乱码问题
为了解决请求参数和响应消息中的中文乱码问题,需要在 Servlet 的 doPost 方法中设置请求参数编码为 UTF-8,并使用 ISO-8859-1 解码和 UTF-8 编码来处理响应消息中的中文。
在 buy.html 页面中,也需要设置表单的 accept-charset 属性为 UTF-8,确保表单数据以 UTF-8 编码提交。
总结
通过以上步骤,您就成功实现了简单的商品购买功能。您可以根据需要对代码进行调整和扩展,例如将商品信息存储到数据库中,添加购物车功能等。
希望本教程对您有所帮助,祝您学习愉快!
原文地址: https://www.cveoy.top/t/topic/Rof 著作权归作者所有。请勿转载和采集!