源代码:
此项目基于MVC设计模式,Servlet做逻辑处理,jsp进行页面展示,DAO层处理数据库
1.数据库建表:
create table jspproduct(
id int primary key auto_increment,
name varchar(30) not null,
description varchar(100) ,
price int check( price >= 0 ),
account int check( account >= 0 ),
status int default 1 check( status in (0, 1) ),
addtime date
);
create table jspuser(
id int(10) primary key auto_increment,
username varchar(15) unique,
password varchar(6) not null check( length(password)=6),
realname varchar(20) not null
);
insert into jspuser values(1,'huxz','123456','胡鑫喆');
insert into jspuser values(2,'liucy','123456','刘春阳');
insert into jspuser values(3,'luxw','123456','陆晓伟');
commit;
2.新建idea web项目
3.添加依赖包,add as a library
4.新建com.xx.util包,添加工具类BaseDAO.java,添加过滤器处理中文乱码,添加配置文件config.properties到src下
5.新建实体类Product, 新建ProductService接口以及它的实现类ProductServiceImpl, 新建ProductDAO接口以及它的实现类ProductDAOImpl(继承BaseDAO类)
展示商品信息功能
流程:QueryProductListServlet–>product_list.jsp
在index.jsp中添加商品管理标签,链接为/QueryProductListServlet,并测试链接
<a href="/QueryProductListServlet">商品管理</a>
新建QueryProductListServlet
拿到ProductService的实现类的实例化对象
private ProductService productService=new ProductServiceImpl();
逻辑处理
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.调用service的查询商品的列表的方法,返回商品列表
List<Product> products=productService.selectAllProduct();
//2.保存商品列表
request.setAttribute("products",products);
//3.请求转发到Product_list.jsp,在页面上显示商品列表和信息
request.getRequestDispatcher("product_list.jsp").forward(request,response);
}
逐级完成selectAllProduct()方法(最终在DAO层实现):
ProductServiceimpl中私有一个ProductDAO的实现类对象用来下一步调用
private ProductDAO productDAO= new ProductDAOIml();
ProductService中定义selectAllProduct方法,实现类中重写方法。
ProductDAO中定义selectAllProduct方法,实现类中重写方法。
//ProductServiceImpl
@Override
public List<Product> selectAllProduct() {
return productDAO.selec