Servlet+J2EE购物车实例

该博客通过一个Servlet+J2EE的小实例详细介绍了如何构建一个购物网站,包括web运行流程、数据库设计、产品和用户模块,以及购物车和订单模块的实现。涉及Hero、Product、User、OrderItem等多个实体类以及对应的DAO和Servlet,通过实例展示了从数据表创建到业务逻辑的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Servlet小例:

1.整个web运行流程图:

在这里插入图片描述
创建实体项目:
在这里插入图片描述

2.在数据库中创建表:Hero

在这里插入图片描述
并加入数据
在这里插入图片描述

3. Hero.java

package bean;
public class Hero {
    public int id;
    public String name;
    public float hp;
    public int damage;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public float getHp() {
        return hp;
    }
    public void setHp(float hp) {
        this.hp = hp;
    }
    public int getDamage() {
        return damage;
    }
    public void setDamage(int damage) {
        this.damage = damage;
    }
     

4.HeroDAO.java

package dao;
  
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
 
import bean.Hero;
  
public class HeroDAO {
  
    public HeroDAO() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
  
    public Connection getConnection() throws SQLException {
        return DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8", "root",
                "admin");
    }
  
    public int getTotal() {//统计产品数量
        int total = 0;
        try (Connection c = getConnection(); Statement s = c.createStatement();) {
  
            String sql = "select count(*) from hero";
  
            ResultSet rs = s.executeQuery(sql);
            while (rs.next()) {
                total = rs.getInt(1);
            }
  
            System.out.println("total:" + total);
  
        } catch (SQLException e) {
  
            e.printStackTrace();
        }
        return total;
    }
  
    public void add(Hero hero) {//新增产品
  
        String sql = "insert into hero values(null,?,?,?)";
        try (Connection c = getConnection(); PreparedStatement ps = c.prepareStatement(sql);) {
  
            ps.setString(1, hero.name);
            ps.setFloat(2, hero.hp);
            ps.setInt(3, hero.damage);
  
            ps.execute();
  
            ResultSet rs = ps.getGeneratedKeys();
            if (rs.next()) {
                int id = rs.getInt(1);
                hero.id = id;
            }
        } catch (SQLException e) {
  
            e.printStackTrace();
        }
    }
  
    public void update(Hero hero) {
  
        String sql = "update hero set name= ?, hp = ? , damage = ? where id = ?";
        try (Connection c = getConnection(); PreparedStatement ps = c.prepareStatement(sql);) {
  
            ps.setString(1, hero.name);
            ps.setFloat(2, hero.hp);
            ps.setInt(3, hero.damage);
            ps.setInt(4, hero.id);
  
            ps.execute();
  
        } catch (SQLException e) {
  
            e.printStackTrace();
        }
  
    }
  
    public void delete(int id) {
  
        try (Connection c = getConnection(); Statement s = c.createStatement();) {
  
            String sql = "delete from hero where id = " + id;
  
            s.execute(sql);
  
        } catch (SQLException e) {
  
            e.printStackTrace();
        }
    }
  
    public Hero get(int id) {//根据id 获取整个产品的信息
        Hero hero = null;
  
        try (Connection c = getConnection(); Statement s = c.createStatement();) {
  
            String sql = "select * from hero where id = " + id;
  
            ResultSet rs = s.executeQuery(sql);
  
            if (rs.next()) {
                hero = new Hero();
                String name = rs.getString(2);
                float hp = rs.getFloat("hp");
                int damage = rs.getInt(4);
                hero.name = name;
                hero.hp = hp;
                hero.damage = damage;
                hero.id = id;
            }
  
        } catch (SQLException e) {
  
            e.printStackTrace();
        }
        return hero;
    }
  
    public List<Hero> list() {//获取所有商品的信息
        return list(0, Short.MAX_VALUE);
    }
  
    public List<Hero> list(int start, int count) {
        List<Hero> heros = new ArrayList<Hero>();
  
        String sql = "select * from hero order by id desc limit ?,? ";
  
        try (Connection c = getConnection(); PreparedStatement ps = c.prepareStatement(sql);) {
  
            ps.setInt(1, start);
            ps.setInt(2, count);
  
            ResultSet rs = ps.executeQuery();
  
            while (rs.next()) {
                Hero hero = new Hero();
                int id = rs.getInt(1);
                String name = rs.getString(2);
                float hp = rs.getFloat("hp");
                int damage = rs.getInt(4);
                hero.id = id;
                hero.name = name;
                hero.hp = hp;
                hero.damage = damage;
                heros.add(hero);
            }
        } catch (SQLException e) {
  
            e.printStackTrace();
        }
        return heros;
    }
  
}

5.HeroListServlet.java

package servlet;
 
import java.io.IOException;
import java.util.List;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import bean.Hero;
import dao.HeroDAO;
 
public class HeroListServlet extends HttpServlet {
 
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
         
        List<Hero> heros = new HeroDAO().list();
 
        StringBuffer sb = new StringBuffer();
        sb.append("<table align='center' border='1' cellspacing='0'>\r\n");
        sb.append("<tr><td>id</td><td>name</td><td>hp</td><td>damage</td></tr>\r\n");
 
        String trFormat = "<tr><td>%d</td><td>%s</td><td>%f</td><td>%d</td></tr>\r\n";
 
        for (Hero hero : heros) {
            String tr = String.format(trFormat, hero.getId(), hero.getName(), hero.getHp(), hero.getDamage());
            sb.append(tr);
        }
 
        sb.append("</table>");
 
        response.getWriter().write(sb.toString());
 
    }
}

6.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
 

  
        <servlet>
        <servlet-name>HeroListServlet</servlet-name>
        <servlet-class>servlet.HeroListServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>HeroListServlet</servlet-name>
        <url-pattern>/listHero</url-pattern>
    </servlet-mapping>   
         
</web-app>

接下来就是在eclipse中配置Tomcat并启动,这个需要好几个步骤完成。
首先右键项目 -> Run As -> Run on Server
在这里插入图片描述
在这里插入图片描述
按finish

接下就可以 访问了
在这里插入图片描述

二、模仿购物网站小例:

一、过程图:

在这里插入图片描述

二、表与表关系

首先各个类的意义:
Product: 产品表
User :用户表
Order :订单表
OrderItem: 订单项表
在这里插入图片描述

1. 产品和订单项的关系是 一对多
一种产品,对应多条订单项。
一条订单项,对应一种产品
2. 订单项和订单的关系 多对一
一个订单里有多条订单项
一个订单项,只会出现在一个订单里
3. 订单和用户的关系: 多对一
一个订单,只能属于一个用户
一个用户,可以下多个订单

三、数据库和数据库表创建

创建数据库:cart

create database cart;

按理来说,一般创建表都要设置外键约束等,但这里没有,只是逻辑联系而已
数据库表没建约束的坏处就是,数据更改没有联系

1.创建product表

DROP TABLE IF EXISTS `product`;
CREATE TABLE `product` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  `price` float DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据
在这里插入图片描述

use cart
insert into product values(1,'黑色钢笔',500);
insert into product values(2,'苹果手机',2500);
insert into product values(3,'帆布鞋',180);
insert into product values(4,'蜡烛',0.20);

2.创建用户表:user

在这里插入图片描述

create table user(
id int,
name varchar(50),
password varchar(50)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据

user cart;
insert into user values(1,'tom','123');

3.创建订单表:order_

在这里插入图片描述

create table order_(
  id int AUTO_INCREMENT,
  uid int,
  primary key(id)
);

4.创建订单项表:orderitem

在这里插入图片描述

create table orderitem(
  id int AUTO_INCREMENT,
  pid int,
  num int,
  oid int,
  primary key(id)
);

四、产品模块

1.Product.java

package bean;
 
public class Product {
 
    private int id;
    private String name;
    private float price;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public float getPrice() {
        return price;
    }
    public void setPrice(float price) {
        this.price = price;
    }
     
}

2.ProductDAO.java

package 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 bean.Product;
 
public class ProductDAO {
 
    public static void main(String[] args) {
 
        System.out.println(new ProductDAO().getProduct(1).getName());
 
    }
 
    public Product getProduct(int id) {//获取单个产品的信息
        Product result = null;
 
        try {
            Class.forName("com.mysql.jdbc.Driver");
 
            Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/cart?characterEncoding=UTF-8",
                    "root", "admin");
 
            String sql = "select * from product where id = ?";
 
            PreparedStatement ps = c.prepareStatement(sql);
            ps.setInt(1, id);
 
            ResultSet rs = ps.executeQuery();
 
            if (rs.next()) {
                result = new Product();
                result.setId(id);
 
                String name = rs.getString(2);
                float price = rs.getFloat(3);
 
                result.setName(name);
                result.setPrice(price);
 
            }
 
            ps.close();
 
            c.close();
 
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return result;
    }
 
    public List<Product> ListProduct() {//获取所有产品的信息
        List<Product> products = new ArrayList<Product>();
 
        try {
            Class.forName("com.mysql.jdbc.Driver");
 
            Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/cart?characterEncoding=UTF-8",
                    "root", "admin");
 
            String sql = "select * from product order by id desc";
 
            PreparedStatement ps = c.prepareStatement(sql);
 
            ResultSet rs = ps.executeQuery();
 
            while (rs.next()) {
                Product product = new Product();
                int id = rs.getInt(1);
                String name = rs.getString(2);
                float price = rs.getFloat(3);
 
                product.setId(id);
                product.setName(name);
                product.setPrice(price);
                products.add(product);
 
            }
 
            ps.close();
 
            c.close();
 
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return products;
    }
}

3.PrductServlet.java

package servlet;
 
import java.io.IOException;
import java.util.List;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import bean.Product;
import dao.ProductDAO;
 
public class ProductListServlet extends HttpServlet {
 
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        List<Product> products = new ProductDAO().ListProduct();
 
        request.setAttribute("products", products);
 
        request.getRequestDispatcher("listProduct.jsp").forward(request, response);
 
    }
}

在这里插入图片描述

4.listProduct.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*" isELIgnored="false"%>
 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 
<c:if test="${!empty user}">
  <div align="center">
    当前用户: ${user.name}
  </div>
</c:if>
 
<table align='center' border='1' cellspacing='0'>
    <tr>
        <td>id</td>
        <td>名称</td>
        <td>价格</td>
        <td>购买</td>
    </tr>
    <c:forEach items="${products}" var="product" varStatus="st">
        <tr>
            <td>${product.id}</td>
            <td>${product.name}</td>
            <td>${product.price}</td>
            <td>
             
            <form action="addOrderItem" method="post">
             
            数量<input type="text" value="1" name="num">
            <input type="hidden" name="pid" value="${product.id}">
            <input type="submit" value="购买">
            </form>
              
        </tr>
    </c:forEach>
</table>

5. 最终版web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
  <!-- 显示所有产品信息页面的servlet处理-->
    <servlet>
        <servlet-name>ProductListServlet</servlet-name>
        <servlet-class>servlet.ProductListServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>ProductListServlet</servlet-name>
        <url-pattern>/listProduct</url-pattern>
    </servlet-mapping>

  <!-- 登录页面的servlet处理-->
    <servlet>
        <servlet-name>UserLoginServlet</servlet-name>
        <servlet-class>servlet.UserLoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UserLoginServlet</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

  <!-- 点击“购买”按钮的servlet处理-->
    <servlet>
        <servlet-name>OrderItemAddServlet</servlet-name>
        <servlet-class>servlet.OrderItemAddServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>OrderItemAddServlet</servlet-name>
        <url-pattern>/addOrderItem</url-pattern>
    </servlet-mapping>
    
  <!-- 购物车页面的servlet处理-->
    <servlet>
        <servlet-name>OrderItemListServlet</servlet-name>
        <servlet-class>servlet.OrderItemListServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>OrderItemListServlet</servlet-name>
        <url-pattern>/listOrderItem</url-pattern>
    </servlet-mapping>
    
  <!-- 点击“生成订单”按钮的servlet处理-->
    <servlet>
        <servlet-name>OrderCreateServlet</servlet-name>
        <servlet-class>servlet.OrderCreateServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>OrderCreateServlet</servlet-name>
        <url-pattern>/createOrder</url-pattern>
    </servlet-mapping>
 
</web-app>

五、用户模块

1. User.java

package bean;
 
public class User {
    private int id;
    private String name;
    private String password;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

2.UseDAO.java

package dao;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
 
import bean.User;
 
public class UserDAO {
 
    public static void main(String[] args) {
 
        System.out.println(new UserDAO().getUser("tom", "123").getId());
 
    }
 
    public User getUser(String name, String password) {
        User result = null;
 
        try {
            Class.forName("com.mysql.jdbc.Driver");
 
            Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/cart?characterEncoding=UTF-8",
                    "root", "admin");
 
            String sql = "select * from user where name = ? and password = ?";
 
            PreparedStatement ps = c.prepareStatement(sql);
 
            ps.setString(1, name);
            ps.setString(2, password);
            ResultSet rs = ps.executeQuery();
 
            if (rs.next()){
                result = new User();
                result.setId(rs.getInt(1));
                result.setPassword(password);
                result.setName(name);
            }
 
            ps.close();
 
            c.close();
 
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return result;
    }
}

3.login.jsp

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
 
<!DOCTYPE html>
 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 
<form action="login" method="post"> <!-- 点击登录 访问 /login 资源 -->
    账号: <input type="text" name="name"> <br>
    密码: <input type="password" name="password"> <br>
    <input type="submit" value="登录">
</form>

4.UserServlet.java

package servlet;
 
import java.io.IOException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import bean.User;
import dao.UserDAO;
 
public class UserLoginServlet extends HttpServlet {
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        User user = new UserDAO().getUser(name, password);
        if (null != user) {
            request.getSession().setAttribute("user", user);
            response.sendRedirect("/listProduct");
        } else
            response.sendRedirect("/login.jsp");
 
    }
}

六、购物车模块(订单项)

OrderItem.java

package bean;
 
public class OrderItem {
 
    private int id;
    private Product product;
    private int num;
    private Order order;//订单对象
    public Order getOrder() {
        return order;
    }
    public void setOrder(Order order) {
        this.order = order;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public Product getProduct() {
        return product;
    }
    public void setProduct(Product product) {
        this.product = product;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
}

购买商品:OrderItemAddServlet.class

package servlet;
 
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import bean.OrderItem;
import bean.Product;
import dao.ProductDAO;
 
public class OrderItemAddServlet extends HttpServlet {
 
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        int num = Integer.parseInt(request.getParameter("num"));
        int pid = Integer.parseInt(request.getParameter("pid"));
        Product p = new ProductDAO().getProduct(pid);
 
        OrderItem oi = new OrderItem();
 
        oi.setNum(num);
        oi.setProduct(p);
 
        List<OrderItem> ois = (List<OrderItem>) request.getSession().getAttribute("ois");
 
        if (null == ois) {
            ois = new ArrayList<OrderItem>();
            request.getSession().setAttribute("ois", ois);
        }

        boolean found = false; 
        for (OrderItem orderItem : ois) {
          	// 解决购买相同商品的操作
            if (orderItem.getProduct().getId() == oi.getProduct().getId()) {
                orderItem.setNum(orderItem.getNum() + oi.getNum());
                found = true;
                break;
            }
        }
 
        if (!found)
            ois.add(oi);
 
        response.sendRedirect("/listOrderItem");
 
    }
}

显示购物车内容:OrderItemListServlet.java

package servlet;
 
import java.io.IOException;
import java.util.List;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import bean.Product;
import dao.ProductDAO;
 
public class OrderItemListServlet extends HttpServlet
{
 
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        request.getRequestDispatcher("listOrderItem.jsp").forward(request, response);
    }
}

在这里插入图片描述

4.ListOrderItem.jsp 查看购物车

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*" isELIgnored="false"%>
 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 
<h1 align="center" >购物车</h1>
<table align='center' border='1' cellspacing='0'>
    <tr>
        <td>商品名称</td>
        <td>单价</td>
        <td>数量</td>
        <td>小计</td>
    </tr>
 
    <c:forEach items="${ois}" var="oi" varStatus="st">
        <tr>
            <td>${oi.product.name}</td>
            <td>${oi.product.price}</td>
            <td>${oi.num}</td>
            <td>${oi.product.price*oi.num}</td>
        </tr>
    </c:forEach>
     
    <c:if test="${!empty ois}">
        <tr>
            <td colspan="4" align="right">
                <a href="createOrder">生成订单</a> 
            </td>
        </tr>
    </c:if>
     
</table>

七、订单模块

1.Order .class

package bean;
 
public class Order {
 
    int id;
    User user;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
}

2.OrderDAO.java

package dao;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
 
import bean.Order;
 
public class OrderDAO {
 
    public void insert(Order o) {
 
        try {
            Class.forName("com.mysql.jdbc.Driver");
 
            Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/cart?characterEncoding=UTF-8",
                    "root", "admin");
 
            String sql = "insert into order_ values(null,?)";
 
            PreparedStatement ps = c.prepareStatement(sql);
 
            ps.setInt(1, o.getUser().getId());
 
            ps.execute();
 
            ResultSet rs = ps.getGeneratedKeys();
            if (rs.next()) {
                int id = rs.getInt(1);
                o.setId(id);
            }
 
            ps.close();
 
            c.close();
 
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 
    }
 
}

3.OrderItemDAO .java 保存订单项进数据库,持久化

(也就是点击:生成订单)
将订单+用户的信息写进数据可的订单项表
结果如下图:
在这里插入图片描述

package 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 bean.OrderItem;
import bean.Product;
 
public class OrderItemDAO {
 
    public static void main(String[] args) {
 
    }
     
    public void insert(OrderItem oi) {
 
        try {
            Class.forName("com.mysql.jdbc.Driver");
 
            Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/cart?characterEncoding=UTF-8",
                    "root", "admin");
 
            String sql = "insert into orderitem values(null,?,?,?)";
 
            PreparedStatement ps = c.prepareStatement(sql);
 
            ps.setInt(1,oi.getProduct().getId());
            ps.setInt(2,oi.getNum());
            ps.setInt(3,oi.getOrder().getId());
             
            ps.execute();
 
            ps.close();
 
            c.close();
 
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         
    }
 
}

4.OrderCreateServlet .java 生成订单的Servlet

也就是在这个页面点击生成订单的超链接,则会根据web中的配置,让OrderCreateServlet类处理这个访问
在这里插入图片描述

package servlet;
 
import java.io.IOException;
import java.util.List;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import bean.Order;
import bean.OrderItem;
import bean.User;
import dao.OrderDAO;
import dao.OrderItemDAO;
 
public class OrderCreateServlet extends HttpServlet {
 
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
 
        User u = (User) request.getSession().getAttribute("user");
        if(null==u){
            response.sendRedirect("/login.jsp");
            return;
        }
         
        Order o = new Order();
        o.setUser(u);
 
        new OrderDAO().insert(o);
 
        List<OrderItem> ois = (List<OrderItem>) request.getSession().getAttribute("ois");
        for (OrderItem oi : ois) {
            oi.setOrder(o);
            new OrderItemDAO().insert(oi);
        }
         
        ois.clear();
         
        response.setContentType("text/html; charset=UTF-8");
        response.getWriter().println("订单创建成功");
 
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值