1 编写 新增商品 和 查询商品的页面

2 使用Servlet + JDBC 完成新增商品 和查询商品的功能

3 实现新增商品之后 重定向到 查询商品的页面

package com.qiku.web;import com.qiku.dao.ProductDao;
import com.qiku.entity.Product;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.List;/*** 一个Servlet对应一个客户端请求*/
@WebServlet(name = "findAllProductServlet" , urlPatterns = "/findAllProduct")
public class FindAllProductServlet extends HttpServlet {//由于我们需要访问ProductDao中的方法 所以将其作为成员变量private ProductDao productDao = new ProductDao();@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {try {//执行查询所有商品的操作List<Product> allProduct = productDao.findAllProduct();//将allProduct 写出到页面上resp.setContentType("text/html;charset=utf-8");PrintWriter writer = resp.getWriter();writer.println("<table border=\"1\">");for(Product p : allProduct){
//                writer.println("<h3>"+p.getPname()+"\t"+p.getPrice()+"\t"+p.getPdesc()+"</h3>");writer.println("<tr><td>"+p.getPname()+"</td><td>"+p.getPrice()+"</td><td>"+p.getPdesc()+"</tr>");}} catch (SQLException e) {e.printStackTrace();}}
}
package com.qiku.web;import com.qiku.dao.ProductDao;
import com.qiku.entity.Product;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** 对应新增商品的请求*/
@WebServlet(name = "addProductServlet" , urlPatterns = "/addProduct")
public class AddProductServlet extends HttpServlet {ProductDao productDao = new ProductDao();@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");//获取商品信息String pid = req.getParameter("pid");String pname = req.getParameter("pname");double price= Double.parseDouble(req.getParameter("price"));String pdesc = req.getParameter("pdesc");int pflag = Integer.parseInt(req.getParameter("pflag"));String cid = req.getParameter("cid");//将上述信息 封装成一个 product对象Product product = new Product(pid, pname, price, pdesc, pflag, cid);//将product 作为参数 传递给ProductDao 去存入数据库productDao.addProduct(product);//重定向到查询页面resp.sendRedirect("AllProduct.html");}
}

编写查询商品和添加商品的方法

package com.qiku.dao;import com.qiku.entity.Product;
import com.qiku.utils.DruidUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;import javax.servlet.annotation.WebServlet;
import java.sql.SQLException;
import java.util.List;public class ProductDao {QueryRunner qr = new QueryRunner(DruidUtils.dataSource);//查询所有商品public List<Product> findAllProduct() throws SQLException {String sql = "select * from product";List<Product> productsList = qr.query(sql, new BeanListHandler<Product>(Product.class));return productsList;}public void addProduct(Product p) {try {String sql = "insert into product values( ? , ? , ? , ? , ? , ?)";qr.update(sql, p.getPid(), p.getPname(), p.getPrice(),p.getPdesc(), p.getPflag(), p.getCid());} catch (SQLException e) {e.printStackTrace();}}
}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>主页</title>
</head>
<body>
<a href="findAllProduct">查询所有商品</a>
<hr>
<a href="increase.html">新增商品</a>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>查询商品信息</title>
</head>
<body>
<a href="findAllProduct">查询所有商品</a>
</body>
</html>

新增商品的前端页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>添加商品</title>
</head>
<body>
<form action="addProduct" method="post"><h3>添加商品信息</h3><p>pid:商品编号<input type="text" name="pid"></p><p>pname:商品名称<input type="text" name="pname"></p><p>price:商品价格<input type="text" name="price"></p><p>pdesc:商品描述<input type="text" name="pdesc"></p><p>pflag:商品状态<input type="text" name="pflag"></p><p>cid:商品分类<input type="text" name="cid"></p><input type="submit" value="提交">
</form>
</body>
</html>

2022-5-11作业相关推荐

  1. java学习笔记 2022.2.11

    2022.2.11 on java 8 摘录(反射) 加载.这是由类加载器执行的.该步骤会先找到字节码(通常在类路径中的磁盘上,但也不一定),然后从这些字节码中创建一个Class对象. 链接.链接阶段 ...

  2. 2022年11月骨传导耳机排名,骨传导蓝牙耳机品牌怎么选?

    近些年市面上供消费者选择的骨传导蓝牙耳机品牌众多,有突出防水功能的骨传导耳机,也有突出音质的骨传导耳机,2022年11月市面上又出现了许多新款骨传导蓝牙耳机,这些各式各样的骨传导耳机排名情况如何?骨传 ...

  3. 【数据分享】2022年11月西南地区POI数据分享(重庆、四川、贵州、云南、西藏)

    一.数据概况 今天分享一份西南地区的POI数据,包含重庆市.四川省.贵州省.云南省.西藏自治区5个省级行政区. 数据时间为2022年11月,坐标系是GCJ-02. 较2022年3月的POI数据,5个区 ...

  4. 2022年11月多家权威机构____编程语言排行榜__薪酬状况

    2022年11月多家权威机构____编程语言排行榜__薪酬状况 目 录: 一.TIOBE统计数据(2022年11月) (1)2022年11月的编程语言流行度指数排行 (2)编程语言多年流行回顾 (3) ...

  5. 第14届蓝桥杯STEMA测评真题剖析-2022年11月27日Scratch编程初中级组

    [导读]:超平老师的<Scratch蓝桥杯真题解析100讲>已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第117讲. 蓝桥杯选拔赛现已更名为STEMA,即ST ...

  6. Microsoft Visual Studio C++2022 Windows 11 SDK环境

    Microsoft Visual Studio C++2022 Windows 11 SDK环境 1.安装 2.环境变量 本文为作者(难拳)原创,转载请注明出处. 1.安装 Visual Studio ...

  7. 2022年11月PMP考试时间出炉!考生须知

    中国大陆地区2022年第二期PMP认考试将在满足疫情防控和考试组织条件的基础上,暂定于11月27日上午举办,此次考试将采取分地区.分批次的报名方式. 一.报名网站 本网站是中国国际人才交流基金会新版项 ...

  8. 【lnmp+ELK+Nginx+GeoIP】超详细新版ELK8.5.0解析收集Nginx日志并实现数据可视化与IP地址地图可视化教程-2022年11月版

    超详细新版ELK8.5.0+lnmp1.9解析收集Nginx日志并实现数据可视化与IP地址地图可视化教程-2022年11月版 前言 1.基础环境和所需要的软件包 1.1服务器配置(仅供参考) 1.2 ...

  9. 2022 年 11 种最佳移动自动化测试工具

    移动应用程序开发正在以前所未有的速度增长,并且相应地需要使用正确的移动测试策略执行彻底的测试.这些策略主要涉及使用各种移动自动化测试工具. 移动测试工具可帮助企业自动化其应用程序测试,并减少额外的成本 ...

  10. 【2022.7.11】HTML基础介绍语法常用标签超文本链接锚点定位

    来自2022.7.11 今日学习 一.HTML基础介绍 1.网页 1.1什么是网页 1.2什么是HTML 1.3超文本 1.4网页的形成 2.常用浏览器 2.1常用浏览器 2.2浏览器内核 3.web ...

最新文章

  1. WPF Datagrid with some read-only rows - Stack Overflow
  2. boost::function模块boost::lambda::bind用法的测试程序
  3. python 将os.getcwd()获取路径中的\替换成\\
  4. RSA key format is not supported
  5. JS 相等判断 / 类型判断
  6. 数据结构—二叉排序树
  7. 试题13 进制转换(十进制-R进制)
  8. 商城系统源码开发技巧分享
  9. java date类赋值日期_Java中Date时间类
  10. 分享一款手机最强Python编程神器,用手机运行Python。天秀!
  11. Selenium打开IE浏览器方法以及报错处理
  12. python turtle 画蜡笔小新_蜡笔小新有几集?作者到底怎么死的啊?
  13. ux设计_UX评论模式品牌知道规则并且也打破了规则
  14. TP-LINK无线路由器配置解读
  15. (转载)酷炫桌面背景图片,实用命令图片
  16. @iptables防火墙详解
  17. 如何计算词语的相似性(附github)
  18. GUI界面连接Mysql数据库
  19. 版本号Alpha、Beta、RC、Candidate、Stable分别代表什么含义?
  20. python 股票量化盘后分析系统V0.42

热门文章

  1. 04 流量削峰这事应该怎么做?
  2. 开启小智桌面后桌面PDF图标不显示怎么办?
  3. es文件浏览器http服务器,‎App Store 上的“ES文件浏览器”
  4. 慎用Wi-Fi,ES文件管理器数据可能被洗劫
  5. HP-UX 11.31上搭建Oracle 11G RAC
  6. 中国消毒柜行业市场深度调研及投资策略预测报告
  7. DirectX12 3D游戏开发实践(龙书)第五章 渲染流水线
  8. 阿里云数字乡村建设解决方案,乡村环境、设施、大数据综合管理系统
  9. Java实现DM5加密
  10. 如何精简内核及内核必要配置