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 编码提交。

总结

通过以上步骤,您就成功实现了简单的商品购买功能。您可以根据需要对代码进行调整和扩展,例如将商品信息存储到数据库中,添加购物车功能等。

希望本教程对您有所帮助,祝您学习愉快!

Java Servlet 实现商品购买功能:从页面表单到成功页面

原文地址: https://www.cveoy.top/t/topic/Rof 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录