环境搭建:创建动态web工程jt_manage
导入工程所需要的jar包和配置文件c3p0-0.9.1.2.jar. jstl.jar. mysql-connector-java-5.0.8.bin.jar. standard.jar放在WebContent/WEB-INF/lib下
导入配置文件(放在src目录下)c3p0-config.xml
创建包结构:com.tony.jt.utils包和com.tony.jt.web.backend包
在WebContend目录下,创建backend目录用来存放在项目中的jsp页面
制作页面:_left.html _right.html, _top.html , manage.jsp, prod_add.jsp, prod_list.jsp, prod_upd.jsp
添加后台实现
在web.backend下创建ProdAddServlet用于处理客户端的添加商品的请求
导入JDBCUtils工具类 com.tedu.jt.utils 包JDBCUtils.java类
设置表结构:
– 0.删除jt_db数据库(如果存在)
drop database if exists jt_db;
– 1.创建数据库jt_db
create database jt_db charset=GBK;
– 2.选中jt_db数据库
use jt_db;
– 3.在 jt_db 库中创建product表(商品表)
create table product(
id int primary key auto_increment, – 商品ID
name varchar(50), – 商品名称
category varchar(50), – 商品分类
price double, – 商品单价
pnum int, – 库存数量
description varchar(50) – 商品描述
);
实现ProdAddServlet处理商品添加请求
实现ProdAddServlet的doGet方法
Public class ProdAddServlet extends HttpServlet{
private static final long seriaVersionUID=1l;
protected void doGet(HttpServletRequest,request,HttpServletResponse response)
throws ServletException,IOException{
0. 处理乱码 (0.1请求参数乱码,0.2响应正文乱码)
- 获取商品信息
- 将商品存入到数据库中
- 提示用户商品添加成功
- 定时刷新到ProdListServlet,查询商品列表
}
在ProdAddServlet中添加addProd方法用于将商品信息保存到数据库中
将商品信息存入到数据库中
@param {name,category,price,pnum,description}
private void addProd(String name,String category,double price,int pnum,String description){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
Try{
- 获取数据库连接
- 声明sql语句
- 获取传输器
- 设置sql参数
- 执行sql语句
- 释放资源
}
}
}
测试:添加商品,查看数据中product表中,是否有新增的商品记录
创建ProdListServlet,查询所有商品信息,将商品信息封装到Product对象中,并将所有商品存入list集合中,存入到request域中转发到prod_list.jsp中展示
实现ProdListServlet类中的doGet方法
protected void doGet(HttpServletRequest request,HttpServletResponse response){
- 查询所有商品信息,返回所有商品组成的List集合
- 将所有商品集合存入request域中
- 通过请求转发将商品信息带到pro_list.jsp中展示
}
在ProdListServlet中添加findProdList方法用于查询所有的商品信息,代码实现如下
查询所有商品信息
private List findProList(){
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{ - 获取连接
- 声明sql语句
- 获取传输器
- 执行sql语句
- 创建List集合用于封装所有商品信息
- 遍历结果集
- 将每一行记录封装到produce对象中
- 将product对象添加到list集合中
- 释放资源
}
}
商品列表页面实现(prod_list.jsp)
在ProdListServlet中将会查询出所有商品信息,存入List集合并将List集合存入request域中,通过转发带到prod_list.jsp页面,在prod_list.jsp中通过JSTL标签(c:forEach)取出集合中的数据进行展示.
1.编辑prod_list.jsp,使用EL+JSTL遍历List集合中的商品信息
(1)通过taglib指令导入JSTL标签库
<%@ page language=”java” pageEncoding = “UTF-8”%>
(2)使用EL+JSTL遍历商品信息
- 获取连接
- 声明sql语句
- 获取传输器
- 设置sql参数、
- 执行sql语句
- 关闭资源
}
}
商品删除入口开发
1.入口开发,编辑prod_list.jsp中”删除”超链接,点击连接,访问ProdDelServlet删除指定ID的商品信息.
1获取连接
2声明sql语句
3获取传输器
4设置sql参数、
5执行sql语句
6关闭资源
}
}
Product(商品类)实现
- 创建商品类,添加如下成员
商品类信息
public class Product{
private int id;
private String name;
private String category;
private double price;
private int pnum;
private String description;
为成员变量提供对应的setter和getter方法
右击—>sourcegenerate setter and getter;
重写toString 方法
右击—>sourcegenerate toString
}
细节处理:
异常处理:
在web.xml文件中为整个项目的异常信息配置友好错误提示页面,当抛出异常时,不要给用户显示提示异常信息的页面,而是提示友好错误提示页面. 配置如下
500
/backend/error/500.jsp